summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CGI.pl23
-rwxr-xr-xpost_bug.cgi8
2 files changed, 9 insertions, 22 deletions
diff --git a/CGI.pl b/CGI.pl
index f9892f7c6..c0e38c50a 100644
--- a/CGI.pl
+++ b/CGI.pl
@@ -228,14 +228,11 @@ sub CheckFormField (\%$;\@) {
SendSQL("SELECT description FROM fielddefs WHERE name=" . SqlQuote($fieldname));
my $result = FetchOneColumn();
if ($result) {
- PuntTryAgain("A legal $result was not set.");
+ ThrowCodeError("A legal $result was not set.", undef, "abort");
}
else {
- PuntTryAgain("A legal $fieldname was not set.");
- print Param("browserbugmessage");
+ ThrowCodeError("A legal $fieldname was not set.", undef, "abort");
}
- PutFooter();
- exit 0;
}
}
@@ -965,9 +962,11 @@ sub DisplayError {
# For "this shouldn't happen"-type places in the code.
# $vars->{'variables'} is a reference to a hash of useful debugging info.
sub ThrowCodeError {
- ($vars->{'error'}, $vars->{'variables'}) = (@_);
+ ($vars->{'error'}, $vars->{'variables'}, my $unlock_tables) = (@_);
$vars->{'title'} = "Code Error";
+ SendSQL("UNLOCK TABLES") if $unlock_tables;
+
# We may optionally log something to file here.
print "Content-type: text/html\n\n" if !$vars->{'header_done'};
@@ -1016,18 +1015,6 @@ END
exit;
}
-# PuntTryAgain is deprecated. Use UserError with the unlock_tables parameter.
-sub PuntTryAgain ($) {
- ($vars->{'error'}) = (@_);
-
- SendSQL("UNLOCK TABLES");
-
- $vars->{'header_done'} = "true";
- $template->process("global/user-error.html.tmpl", $vars)
- || ThrowTemplateError($template->error());
- exit;
-}
-
sub CheckIfVotedConfirmed {
my ($id, $who) = (@_);
SendSQL("SELECT bugs.votes, bugs.bug_status, products.votestoconfirm, " .
diff --git a/post_bug.cgi b/post_bug.cgi
index b727396d0..143492130 100755
--- a/post_bug.cgi
+++ b/post_bug.cgi
@@ -220,15 +220,15 @@ foreach my $b (grep(/^bit-\d*$/, keys %::FORM)) {
if ($::FORM{$b}) {
my $v = substr($b, 4);
$v =~ /^(\d+)$/
- || PuntTryAgain("One of the group bits submitted was invalid.");
+ || ThrowCodeError("One of the group bits submitted was invalid.",
+ undef, "abort");
if (!GroupIsActive($v)) {
# Prevent the user from adding the bug to an inactive group.
# Should only happen if there is a bug in Bugzilla or the user
# hacked the "enter bug" form since otherwise the UI
# for adding the bug to the group won't appear on that form.
- PuntTryAgain("You can't add this bug to the inactive group " .
- "identified by the bit '$v'. This shouldn't happen, " .
- "so it may indicate a bug in Bugzilla.");
+ ThrowCodeError("Attempted to add bug to an inactive group, " .
+ "identified by the bit '$v'.", undef, "abort");
}
$sql .= " + $v"; # Carefully written so that the math is
# done by MySQL, which can handle 64-bit math,