From: travis%sedsystems.ca <> Date: Thu, 24 Feb 2005 00:52:30 +0000 (+0000) Subject: Bug 212940 : Can't use an undefined value as an ARRAY reference at /http/bugzilla... X-Git-Tag: bugzilla-2.18.1~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ab2ac799e59664cbc283c03e526be1dcfac7380;p=thirdparty%2Fbugzilla.git Bug 212940 : Can't use an undefined value as an ARRAY reference at /http/bugzilla/process_bug.cgi line 866. Patch by Frederic Buclin r=wurblzap a=justdave --- diff --git a/process_bug.cgi b/process_bug.cgi index 4e273aa841..fa3070bcd8 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -23,6 +23,7 @@ # Dave Miller # Christopher Aillon # Myk Melez +# Frédéric Buclin use strict; @@ -876,11 +877,8 @@ SWITCH: for ($::FORM{'knob'}) { /^accept$/ && CheckonComment( "accept" ) && do { DoConfirm(); ChangeStatus('ASSIGNED'); - if (Param("musthavemilestoneonaccept") && - scalar(@{$::target_milestone{$::FORM{'product'}}}) > 1) { - if (Param("usetargetmilestone")) { - $requiremilestone = 1; - } + if (Param("usetargetmilestone") && Param("musthavemilestoneonaccept")) { + $requiremilestone = 1; } last SWITCH; }; @@ -1189,14 +1187,23 @@ foreach my $id (@idlist) { { product => $::FORM{'product'} }, "abort"); } if ($requiremilestone) { - my $value = $::FORM{'target_milestone'}; - if (!defined $value || $value eq $::FORM{'dontchange'}) { - $value = $oldhash{'target_milestone'}; - } - SendSQL("SELECT defaultmilestone FROM products WHERE name = " . - SqlQuote($oldhash{'product'})); - if ($value eq FetchOneColumn()) { - ThrowUserError("milestone_required", { bug_id => $id }, "abort"); + # musthavemilestoneonaccept applies only if at least two + # target milestones are defined for the current product. + my $nb_milestones = scalar(@{$::target_milestone{$oldhash{'product'}}}); + if ($nb_milestones > 1) { + my $value = $cgi->param('target_milestone'); + if (!defined $value || $value eq $cgi->param('dontchange')) { + $value = $oldhash{'target_milestone'}; + } + my $defaultmilestone = + $dbh->selectrow_array("SELECT defaultmilestone + FROM products WHERE id = ?", + undef, $oldhash{'product_id'}); + # if musthavemilestoneonaccept == 1, then the target + # milestone must be different from the default one. + if ($value eq $defaultmilestone) { + ThrowUserError("milestone_required", { bug_id => $id }, "abort"); + } } } if (defined $::FORM{'delta_ts'} && $::FORM{'delta_ts'} ne $delta_ts) {