From e6f4f6c720488c19d06aa5854cb13cf124687627 Mon Sep 17 00:00:00 2001 From: "travis%sedsystems.ca" <> Date: Thu, 24 Feb 2005 00:53:24 +0000 Subject: 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 --- process_bug.cgi | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) (limited to 'process_bug.cgi') diff --git a/process_bug.cgi b/process_bug.cgi index b742062dd..c1f3c33bb 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -23,7 +23,7 @@ # Dave Miller # Christopher Aillon # Myk Melez -# Frédéric Buclin +# Frédéric Buclin use strict; @@ -908,11 +908,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; }; @@ -1249,14 +1246,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) { -- cgit v1.2.3-24-g4f1b