summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2007-08-21 01:04:19 +0200
committerlpsolit%gmail.com <>2007-08-21 01:04:19 +0200
commit5818051fbeb4aec81dd2b9ab861d149ee2f2e10f (patch)
tree6a09df91fb480c70d8b177e7fe0434c5b7447c65
parentae89fa815ac5b6ee314c9f1194179db1c47f5abc (diff)
downloadbugzilla-5818051fbeb4aec81dd2b9ab861d149ee2f2e10f.tar.gz
bugzilla-5818051fbeb4aec81dd2b9ab861d149ee2f2e10f.tar.xz
Bug 257351: collectstats.pl dies if an invalid series is defined - Patch by Frédéric Buclin <LpSolit@gmail.com> r/a=mkanat
-rw-r--r--Bugzilla/DB.pm2
-rwxr-xr-xcollectstats.pl21
2 files changed, 10 insertions, 13 deletions
diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm
index b43b237eb..7384e7b5f 100644
--- a/Bugzilla/DB.pm
+++ b/Bugzilla/DB.pm
@@ -324,7 +324,7 @@ sub sql_group_by {
my ($self, $needed_columns, $optional_columns) = @_;
my $expression = "GROUP BY $needed_columns";
- $expression .= ", " . $optional_columns if defined($optional_columns);
+ $expression .= ", " . $optional_columns if $optional_columns;
return $expression;
}
diff --git a/collectstats.pl b/collectstats.pl
index 730b8c50f..a1ab9b2d1 100755
--- a/collectstats.pl
+++ b/collectstats.pl
@@ -579,22 +579,19 @@ sub CollectSeriesData {
# We set up the user for Search.pm's permission checking - each series
# runs with the permissions of its creator.
my $user = new Bugzilla::User($serieses->{$series_id}->{'creator'});
-
my $cgi = new Bugzilla::CGI($serieses->{$series_id}->{'query'});
- my $search = new Bugzilla::Search('params' => $cgi,
- 'fields' => ["bugs.bug_id"],
- 'user' => $user);
- my $sql = $search->getSQL();
-
my $data;
-
- # We can't die if we get dodgy SQL back for whatever reason, so we
- # eval() this and, if it fails, just ignore it and carry on.
- # One day we might even log an error.
- eval {
+
+ # Do not die if Search->new() detects invalid data, such as an obsolete
+ # login name or a renamed product or component, etc.
+ eval {
+ my $search = new Bugzilla::Search('params' => $cgi,
+ 'fields' => ["bugs.bug_id"],
+ 'user' => $user);
+ my $sql = $search->getSQL();
$data = $shadow_dbh->selectall_arrayref($sql);
};
-
+
if (!$@) {
# We need to count the returned rows. Without subselects, we can't
# do this directly in the SQL for all queries. So we do it by hand.