diff options
author | Joey Hess <joey@kitenet.net> | 2010-04-20 17:21:50 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-04-20 17:21:50 -0400 |
commit | 93cf1db7b9655a64aec6ab17b7192e5e7429f12e (patch) | |
tree | 527628d129e6dc58e73044dfcc936215222b1656 | |
parent | d1a1f3ad21e9e58d1232fc3d997028a463ccad4a (diff) |
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.
-rw-r--r-- | IkiWiki/Plugin/passwordauth.pm | 12 |
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"; } } |