From 60712d5d6f5db2a468bea0447744c06d5e8a487c Mon Sep 17 00:00:00 2001 From: Max Kanat-Alexander Date: Sat, 19 Feb 2011 23:44:03 -0800 Subject: Bug 632717: Limit the total number of results that a search can ever return. r=mkanat, a=mkanat (module owner) --- Bugzilla/Config/Query.pm | 10 ++++++++-- Bugzilla/Search.pm | 6 ++++++ 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'Bugzilla') diff --git a/Bugzilla/Config/Query.pm b/Bugzilla/Config/Query.pm index 821f09fc6..3513b12e3 100644 --- a/Bugzilla/Config/Query.pm +++ b/Bugzilla/Config/Query.pm @@ -71,8 +71,14 @@ sub get_param_list { name => 'specific_search_allow_empty_words', type => 'b', default => 1 - } - + }, + + { + name => 'max_search_results', + type => 't', + default => '10000', + checker => \&check_numeric + }, ); return @param_list; } diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index 224193fbc..2bd4c06c9 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -929,6 +929,12 @@ sub _sql_limit { my ($self) = @_; my $limit = $self->_params->{limit}; my $offset = $self->_params->{offset}; + + my $max_results = Bugzilla->params->{'max_search_results'}; + if (!$self->{allow_unlimited} && (!$limit || $limit > $max_results)) { + $limit = $max_results; + } + if (defined $offset and not defined $limit) { $limit = INT_MAX; } -- cgit v1.2.3-24-g4f1b