mesa: test index bounds before array element
authorRoel Kluin <roel.kluin@gmail.com>
Wed, 6 Jan 2010 16:27:42 +0000 (08:27 -0800)
committerBrian Paul <brianp@vmware.com>
Wed, 6 Jan 2010 16:47:37 +0000 (09:47 -0700)
Check whether the index is within bounds before accessing the array.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
src/mesa/drivers/dri/tdfx/tdfx_dd.c
src/mesa/shader/nvfragparse.c
src/mesa/shader/prog_optimize.c

index 8472df607ae8fa609f7461eaafc3c745d92d756f..ed8a331549209d550db6454bb48c5fb3eb5d5211 100644 (file)
@@ -91,7 +91,7 @@ static const GLubyte *tdfxDDGetString( GLcontext *ctx, GLenum name )
       else {
         /* unexpected result: replace spaces with hyphens */
         int i;
-        for (i = 0; hardware[i] && (i < sizeof(hardware)); i++) {
+        for (i = 0; i < sizeof(hardware) && hardware[i]; i++) {
            if (hardware[i] == ' ' || hardware[i] == '\t') {
               hardware[i] = '-';
            }
index b739a6aa07c951e57bd9838159149beb07aa2597..8ee7c9306264b3b08ff241cc69086ba2f46a4c1a 100644 (file)
@@ -642,7 +642,7 @@ Parse_SwizzleSuffix(const GLubyte *token, GLuint swizzle[4])
    else {
       /* 4-component swizzle (vector) */
       GLint k;
-      for (k = 0; token[k] && k < 4; k++) {
+      for (k = 0; k < 4 && token[k]; k++) {
          if (token[k] == 'x')
             swizzle[k] = 0;
          else if (token[k] == 'y')
index 4fe351251e8c8dca85334451d7d96b8610f674e2..8b9466a5a61e27db40d00219253c82a90d86fdf8 100644 (file)
@@ -578,7 +578,7 @@ _mesa_remove_extra_moves(struct gl_program *prog)
 
             /* get pointer to previous instruction */
             prevI = i - 1;
-            while (removeInst[prevI] && prevI > 0)
+            while (prevI > 0 && removeInst[prevI])
                prevI--;
             prevInst = prog->Instructions + prevI;