|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH 08/13] Reporting: Break out report_blessingscond
The returned SQL is a self-contained expression, and does not require
additional bind parameters. To spot SQL quoting problems, we die if
a blessing is not reasonable.
The use sites of the $blessingcond in sg-report-flight are adjusted to
no longer pass @blessings to execute.
No overall functional change with reasonable blessings.
Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
Osstest/Executive.pm | 13 +++++++++++++
sg-report-flight | 10 +++-------
2 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/Osstest/Executive.pm b/Osstest/Executive.pm
index 9df4d91..ba668bc 100644
--- a/Osstest/Executive.pm
+++ b/Osstest/Executive.pm
@@ -47,6 +47,7 @@ BEGIN {
@EXPORT = qw(get_harness_rev grabrepolock_reexec
findtask @all_lock_tables
report_run_getinfo report_altcolour
+ report_blessingscond
tcpconnect_queuedaemon plan_search
alloc_resources alloc_resources_rollback_begin_work
resource_check_allocated resource_shared_mark_ready
@@ -246,6 +247,18 @@ sub report_altcolour ($) {
return "bgcolor=\"#".(qw(d0d0d0 ffffff))[$bool]."\"";
}
+sub report_blessingscond ($$) {
+ my ($blessings, $maxflight) = @_;
+ my $blessingscond= '('.join(' OR ', map {
+ die if m/[^-_.0-9a-z]/;
+ "blessing='$_'"
+ } @$blessings).')';
+ if (defined $maxflight) {
+ $blessingscond= "( flight <= $maxflight AND $blessingscond )";
+ }
+ return $blessingscond;
+}
+
#---------- host (and other resource) allocation ----------
our $taskid;
diff --git a/sg-report-flight b/sg-report-flight
index 117b609..c1661ec 100755
--- a/sg-report-flight
+++ b/sg-report-flight
@@ -127,11 +127,7 @@ our $cw= 79;
our $tl= 20;
our $htmlleaf= "info.html";
-our $blessingscond= '('.join(' OR ', map { "blessing=?" } @blessings).')';
-
-if (defined $maxflight) {
- $blessingscond= "( flight <= $maxflight AND $blessingscond )";
-}
+our $blessingscond= report_blessingscond(\@blessings, $maxflight);
sub displayflightnum ($) {
my ($flight) = @_;
@@ -202,7 +198,7 @@ END
ORDER BY blessing ASC, flight DESC
END
$flightsq= db_prepare($flightsq);
- $flightsq->execute(@flightsq_params, @blessings);
+ $flightsq->execute(@flightsq_params);
my $buildflightsq= db_prepare(<<END);
SELECT val FROM runvars
@@ -691,7 +687,7 @@ END
next;
}
- $anypassq->execute($j->{job}, $s->{testid}, @blessings);
+ $anypassq->execute($j->{job}, $s->{testid});
if (!$anypassq->fetchrow_hashref()) {
print MRO "never-passed $j->{job} $s->{testid} $st\n";
print DEBUG " never passed\n";
--
1.7.10.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |