|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [OSSTEST PATCH 08/13] Reporting: Break out report_blessingscond
On Mon, 2015-06-29 at 18:14 +0100, Ian Jackson wrote:
> 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>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
BTW, I noticed that your valid blessing regex here includes "-", which
is not allowed elsewhere, which breaks "./standalone make-flight -f
$branch $branch" for our common branch names meaning the flight name
needs some munging. A minor inconvenience, but if this check were moved
to a centralised helper it could be easily fixed...
Or at least this was once the case, I can't see the problematic check
right now and haven't actually tried this for a while. Perhaps it got
fixed already and I didn't notice?
> ---
> 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";
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |