Commit 1b984c11 authored by lpsolit%gmail.com's avatar lpsolit%gmail.com

Bug 365082: QuickSearch using unknown field makes Bugzilla hang - Patch by Teemu…

Bug 365082: QuickSearch using unknown field makes Bugzilla hang - Patch by Teemu Mannermaa <wicked@sci.fi> r/a=LpSolit
parent 92edb9c7
......@@ -170,6 +170,7 @@ sub quicksearch {
$#words < Bugzilla->params->{'quicksearch_comment_cutoff'};
my @openStates = BUG_STATE_OPEN;
my @closedStates;
my @unknownFields;
my (%states, %resolutions);
foreach (@$legal_statuses) {
......@@ -286,8 +287,11 @@ sub quicksearch {
my @fields = split(/,/, $1);
my @values = split(/,/, $2);
foreach my $field (@fields) {
# Be tolerant about unknown fields
next unless defined(MAPPINGS->{$field});
# Skip and record any unknown fields
if (!defined(MAPPINGS->{$field})) {
push(@unknownFields, $field);
next;
}
$field = MAPPINGS->{$field};
foreach (@values) {
addChart($field, 'substring', $_, $negate);
......@@ -392,8 +396,13 @@ sub quicksearch {
$or = 0;
} # foreach (@words)
# We've been very tolerant about invalid queries, so all that's left
# may be an empty query.
# Inform user about any unknown fields
if (scalar(@unknownFields)) {
ThrowUserError("quicksearch_unknown_field",
{ fields => \@unknownFields });
}
# Make sure we have some query terms left
scalar($cgi->param())>0 || ThrowUserError("buglist_parameters_required");
}
......
......@@ -1295,6 +1295,20 @@
[% title = "Query Name Too Long" %]
The name of the query must be less than 64 characters long.
[% ELSIF error == "quicksearch_unknown_field" %]
[% title = "Unknown QuickSearch Field" %]
[% IF fields.unique.size == 1 %]
Field <code>[% fields.first FILTER html %]</code> is not a known field.
[% ELSE %]
Fields
[% FOREACH field = fields.unique.sort %]
<code>[% field FILTER html %]</code>
[% ', ' UNLESS loop.last() %]
[% END %]
are not known fields.
[% END %]
The legal field names are <a href="page.cgi?id=quicksearchhack.html">listed here</a>.
[% ELSIF error == "reassign_to_empty" %]
[% title = "Illegal Reassignment" %]
To reassign [% terms.abug %], you must provide an address for
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment