зеркало из https://github.com/mozilla/pjs.git
Bug 365082: QuickSearch using unknown field makes Bugzilla hang - Patch by Teemu Mannermaa <wicked@sci.fi> r/a=LpSolit
This commit is contained in:
Родитель
051091f387
Коммит
b0e1141c02
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче