aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-02-24 00:20:36 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-02-24 00:20:36 +0000
commit2dfe3efcb7c99cb60c893387db0f21b734e1fbc8 (patch)
tree95b3f72810eb209059469dda3e8444ea27c799af /IkiWiki
parent71d8d3bef0e05118847a3b6383b062b0249921c3 (diff)
downloadikiwiki-2dfe3efcb7c99cb60c893387db0f21b734e1fbc8.tar
ikiwiki-2dfe3efcb7c99cb60c893387db0f21b734e1fbc8.tar.gz
* Correct a bug that could lead to infinite looping after signin in some
circumstances.
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/CGI.pm19
1 files changed, 13 insertions, 6 deletions
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm
index e62bcf477..aee80253b 100644
--- a/IkiWiki/CGI.pm
+++ b/IkiWiki/CGI.pm
@@ -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 ($$) { #{{{