diff options
author | Ian Romanick <[email protected]> | 2009-10-20 10:58:14 -0700 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2009-10-22 19:20:15 -0700 |
commit | dd245016657c599ecf24c4abe999319f9c870c47 (patch) | |
tree | 7316bb394e1e98137eb7ffa666e8a7d919103e5b /src | |
parent | 55058652b886b95bfc24109a9edb04d274c01c1a (diff) |
ARB prog parser: Fix parameter array size comparison
Array indexes are invalid when >= the maximum, but array sizes are
only in valid when > the maximum. This prevented programs from
declaring a single maximum size array.
See the piglit vp-max-array test.
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/shader/program_parse.tab.c | 2 | ||||
-rw-r--r-- | src/mesa/shader/program_parse.y | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index 9f2d4de90fc..c255e912ed2 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -3109,7 +3109,7 @@ yyreduce: /* Line 1455 of yacc.c */ #line 1041 "program_parse.y" { - if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) { + if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) > state->limits->MaxParameters)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size"); YYERROR; } else { diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index 06c1915fbee..ae9e15ae5ae 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -1039,7 +1039,7 @@ optArraySize: } | INTEGER { - if (($1 < 1) || ((unsigned) $1 >= state->limits->MaxParameters)) { + if (($1 < 1) || ((unsigned) $1 > state->limits->MaxParameters)) { yyerror(& @1, state, "invalid parameter array size"); YYERROR; } else { |