]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/CGI.pm
* Correct a bug that could lead to infinite looping after signin in some
[ikiwiki.git] / IkiWiki / CGI.pm
index e62bcf477601ec38be1178ba3ce3207c1e588293..aee80253ba94401e9b517f99f1dcc87b8549145b 100644 (file)
@@ -180,13 +180,20 @@ sub cgi_signin ($$) { #{{{
 sub cgi_postsignin ($$) { #{{{
        my $q=shift;
        my $session=shift;
-
+       
        # Continue with whatever was being done before the signin process.
-       my $postsignin=CGI->new($session->param("postsignin"));
-       $session->clear("postsignin");
-       cgi($postsignin, $session);
-       cgi_savesession($session);
-       exit;
+       if (defined $session->param("postsignin")) {
+               my $postsignin=CGI->new($session->param("postsignin"));
+               $session->clear("postsignin");
+               cgi($postsignin, $session);
+               cgi_savesession($session);
+               exit;
+       }
+       else {
+               # This can occur, for example, if a user went to the signin
+               # url via a bookmark.
+               redirect($q, $config{url});
+       }
 } #}}}
 
 sub cgi_prefs ($$) { #{{{