Mesa (master): radeonsi: check if value is negative

Marek Olšák mareko at kemper.freedesktop.org
Thu Apr 28 09:42:00 UTC 2016


Module: Mesa
Branch: master
Commit: 76b8c5cc602eda19c91b842b02f84564c18e79a6
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=76b8c5cc602eda19c91b842b02f84564c18e79a6

Author: Jakob Sinclair <sinclair.jakob at openmailbox.org>
Date:   Mon Apr 25 09:03:52 2016 +0200

radeonsi: check if value is negative

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 a bit safer but overall should not have a big impact.

CID: 1355598

Signed-off-by: Jakob Sinclair <sinclair.jakob at openmailbox.org>
Signed-off-by: Marek Olšák <marek.olsak at amd.com>

---

 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 06798f2..c214932 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) {




More information about the mesa-commit mailing list