From: lpsolit%gmail.com <> Date: Tue, 25 Jul 2006 07:08:10 +0000 (+0000) Subject: Bug 345359: Prevent Flag::clear from deleting a deleted flag when checking the inclus... X-Git-Tag: bugzilla-2.23.3~233 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=43dd0fc1e7a1c6f601e30243b363b3e2f358f105;p=thirdparty%2Fbugzilla.git Bug 345359: Prevent Flag::clear from deleting a deleted flag when checking the inclusion and exclusion lists - Patch by Frédéric Buclin a=myk --- diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm index 6fb5e19d1d..25541d06bf 100644 --- a/Bugzilla/Flag.pm +++ b/Bugzilla/Flag.pm @@ -448,7 +448,7 @@ sub process { # In case the bug's product/component has changed, clear flags that are # no longer valid. my $flag_ids = $dbh->selectcol_arrayref( - "SELECT flags.id + "SELECT DISTINCT flags.id FROM flags INNER JOIN bugs ON flags.bug_id = bugs.bug_id @@ -463,7 +463,7 @@ sub process { foreach my $flag_id (@$flag_ids) { clear($flag_id, $bug, $attachment) } $flag_ids = $dbh->selectcol_arrayref( - "SELECT flags.id + "SELECT DISTINCT flags.id FROM flags, bugs, flagexclusions e WHERE bugs.bug_id = ? AND flags.bug_id = bugs.bug_id diff --git a/editflagtypes.cgi b/editflagtypes.cgi index 79bf0dd720..1ca6bd94d4 100755 --- a/editflagtypes.cgi +++ b/editflagtypes.cgi @@ -388,7 +388,8 @@ sub update { # Clear existing flags for bugs/attachments in categories no longer on # the list of inclusions or that have been added to the list of exclusions. - my $flags = $dbh->selectall_arrayref('SELECT flags.id, flags.bug_id, flags.attach_id + my $flags = $dbh->selectall_arrayref('SELECT DISTINCT flags.id, flags.bug_id, + flags.attach_id FROM flags INNER JOIN bugs ON flags.bug_id = bugs.bug_id @@ -408,7 +409,7 @@ sub update { Bugzilla::Flag::clear($flag_id, $bug, $attachment); } - $flags = $dbh->selectall_arrayref('SELECT flags.id, flags.bug_id, flags.attach_id + $flags = $dbh->selectall_arrayref('SELECT DISTINCT flags.id, flags.bug_id, flags.attach_id FROM flags INNER JOIN bugs ON flags.bug_id = bugs.bug_id