aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-04-20 17:21:50 -0400
committerJoey Hess <joey@kitenet.net>2010-04-20 17:21:50 -0400
commit93cf1db7b9655a64aec6ab17b7192e5e7429f12e (patch)
tree527628d129e6dc58e73044dfcc936215222b1656 /IkiWiki
parentd1a1f3ad21e9e58d1232fc3d997028a463ccad4a (diff)
downloadikiwiki-93cf1db7b9655a64aec6ab17b7192e5e7429f12e.tar
ikiwiki-93cf1db7b9655a64aec6ab17b7192e5e7429f12e.tar.gz
fix uninitialized value warning
$cgi->params('do') may not be defined. The CSRF code may delete all cgi params. This uninitalized value was introduced when do=register support was added recently.
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Plugin/passwordauth.pm12
1 files changed, 8 insertions, 4 deletions
diff --git a/IkiWiki/Plugin/passwordauth.pm b/IkiWiki/Plugin/passwordauth.pm
index 4848b47bb..baddca093 100644
--- a/IkiWiki/Plugin/passwordauth.pm
+++ b/IkiWiki/Plugin/passwordauth.pm
@@ -105,11 +105,13 @@ sub formbuilder_setup (@) {
my $session=$params{session};
my $cgi=$params{cgi};
- if ($form->title eq "signin" || $form->title eq "register" || $cgi->param("do") eq "register") {
+ my $do_register=defined $cgi->param("do") && $cgi->param("do") eq "register";
+
+ if ($form->title eq "signin" || $form->title eq "register" || $do_register) {
$form->field(name => "name", required => 0);
$form->field(name => "password", type => "password", required => 0);
- if ($form->submitted eq "Register" || $form->submitted eq "Create Account" || $cgi->param("do") eq "register") {
+ if ($form->submitted eq "Register" || $form->submitted eq "Create Account" || $do_register) {
$form->field(name => "confirm_password", type => "password");
$form->field(name => "account_creation_password", type => "password")
if (defined $config{account_creation_password} &&
@@ -247,8 +249,10 @@ sub formbuilder (@) {
my $cgi=$params{cgi};
my $buttons=$params{buttons};
+ my $do_register=defined $cgi->param("do") && $cgi->param("do") eq "register";
+
if ($form->title eq "signin" || $form->title eq "register") {
- if (($form->submitted && $form->validate) || $cgi->param("do") eq "register") {
+ if (($form->submitted && $form->validate) || $do_register) {
if ($form->submitted eq 'Login') {
$session->param("name", $form->field("name"));
IkiWiki::cgi_postsignin($cgi, $session);
@@ -311,7 +315,7 @@ sub formbuilder (@) {
$form->field(name => "name", required => 0);
push @$buttons, "Reset Password";
}
- elsif ($form->submitted eq "Register" || $cgi->param("do") eq "register") {
+ elsif ($form->submitted eq "Register" || $do_register) {
@$buttons="Create Account";
}
}