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.ja...@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

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to