[Mesa-dev] [PATCH 1/1] radeonsi: check if value is negative

Jakob Sinclair sinclair.jakob at openmailbox.org
Sat Apr 23 12:05:23 UTC 2016


Fixes a Coverity defect by adding checks to see if a value is negative
before using it to index an array. By checking the value first it makes
the code more clean and it doesn't change the outcome of the function.

CID: 1355598

Signed-off-by: Jakob Sinclair <sinclair.jakob at openmailbox.org>
---
 src/gallium/drivers/radeonsi/si_state.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 7ae6e8a..8bd527b 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -1762,6 +1762,9 @@ static uint32_t si_translate_buffer_dataformat(struct pipe_screen *screen,
 					       const struct util_format_description *desc,
 					       int first_non_void)
 {
+	if (first_non_void < 0)
+		return V_008F0C_BUF_DATA_FORMAT_INVALID;
+
 	unsigned type = desc->channel[first_non_void].type;
 	int i;
 
@@ -1836,7 +1839,7 @@ static uint32_t si_translate_buffer_numformat(struct pipe_screen *screen,
 					      const struct util_format_description *desc,
 					      int first_non_void)
 {
-	if (desc->format == PIPE_FORMAT_R11G11B10_FLOAT)
+	if (desc->format == PIPE_FORMAT_R11G11B10_FLOAT || first_non_void < 0)
 		return V_008F0C_BUF_NUM_FORMAT_FLOAT;
 
 	switch (desc->channel[first_non_void].type) {
-- 
2.8.0



More information about the mesa-dev mailing list