summaryrefslogtreecommitdiffstats
path: root/process_bug.cgi
diff options
context:
space:
mode:
Diffstat (limited to 'process_bug.cgi')
-rwxr-xr-xprocess_bug.cgi28
1 files changed, 19 insertions, 9 deletions
diff --git a/process_bug.cgi b/process_bug.cgi
index 3919dadb0..e72e9704b 100755
--- a/process_bug.cgi
+++ b/process_bug.cgi
@@ -248,6 +248,24 @@ if (defined $::FORM{'qa_contact'}) {
ConnectToDatabase();
+my %ccids;
+my $origcclist = "";
+
+# We make sure to check out the CC list before we actually start touching any
+# bugs.
+if (defined $::FORM{'cc'} && defined $::FORM{'id'}) {
+ $origcclist = ShowCcList($::FORM{'id'});
+ if ($origcclist ne $::FORM{'cc'}) {
+ foreach my $person (split(/[ ,]/, $::FORM{'cc'})) {
+ if ($person ne "") {
+ my $cid = DBNameToIdAndCheck($person);
+ $ccids{$cid} = 1;
+ }
+ }
+ }
+}
+
+
if ( Param('strictvaluechecks') ) {
CheckFormFieldDefined(\%::FORM, 'knob');
}
@@ -573,15 +591,7 @@ The changes made were:
AppendComment($id, $::FORM{'who'}, $::FORM{'comment'});
}
- if (defined $::FORM{'cc'} && ShowCcList($id) ne $::FORM{'cc'}) {
- my %ccids;
- foreach my $person (split(/[ ,]/, $::FORM{'cc'})) {
- if ($person ne "") {
- my $cid = DBNameToIdAndCheck($person);
- $ccids{$cid} = 1;
- }
- }
-
+ if (defined $::FORM{'cc'} && $origcclist ne $::FORM{'cc'}) {
SendSQL("delete from cc where bug_id = $id");
foreach my $ccid (keys %ccids) {
SendSQL("insert into cc (bug_id, who) values ($id, $ccid)");