summaryrefslogtreecommitdiffstats
path: root/process_bug.cgi
diff options
context:
space:
mode:
Diffstat (limited to 'process_bug.cgi')
-rwxr-xr-xprocess_bug.cgi10
1 files changed, 10 insertions, 0 deletions
diff --git a/process_bug.cgi b/process_bug.cgi
index 7b0dd6a8a..34444dfcf 100755
--- a/process_bug.cgi
+++ b/process_bug.cgi
@@ -1038,6 +1038,16 @@ SWITCH: for ($cgi->param('knob')) {
ThrowUserError("dupe_of_self_disallowed");
}
+ # Make sure the bug is not already marked as a dupe
+ # (may appear in race condition)
+ my $dupe_of =
+ $dbh->selectrow_array("SELECT dupe_of FROM duplicates
+ WHERE dupe = ?",
+ undef, $cgi->param('id'));
+ if ($dupe_of) {
+ ThrowUserError("dupe_entry_found", { dupe_of => $dupe_of });
+ }
+
# DUPLICATE bugs should have no time remaining.
_remove_remaining_time();