mesa: Fix performance query id check
authorRobert Bragg <robert@sixbynine.org>
Fri, 24 Feb 2017 16:39:06 +0000 (16:39 +0000)
committerRobert Bragg <robert@sixbynine.org>
Wed, 1 Mar 2017 23:01:48 +0000 (23:01 +0000)
commitf3ec9d33c6a3ed4ddb42d3bf4844fc04bf4a69c8
tree06a84774bb9855bc25cf017cc91218df21c3b79b
parent6d600cf632f83d7ffdd844e0b3a049605ae858cc
mesa: Fix performance query id check

The queryid_valid() function asserts that an ID given by an application
isn't zero since the spec explicitly reserves an ID of zero as invalid.

The implementation was written as if the ID was a signed integer and
based on the assumption that queryid_to_index() is simply subtracting
one from the ID. It was broken because in fact the ID was stored in an
unsigned int and testing for an index >= 0 would always succeed.

This adds a spec quote to clarify why zero is considered invalid and
checks for zero before even passing the ID to queryid_to_index() for
then checking the upper bound.

This is a v2 of a patch originally posted by Juha-Pekka (thanks)

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Robert Bragg <robert@sixbynine.org>
Reviewed-by: Plamena Manolova <plamena.manolova@intel.com>
src/mesa/main/performance_query.c