diff options
-rw-r--r-- | CGI.pl | 23 | ||||
-rwxr-xr-x | post_bug.cgi | 8 |
2 files changed, 9 insertions, 22 deletions
@@ -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, |