From 42137d2e72cebb41f70c4a306877587fd0ea8c20 Mon Sep 17 00:00:00 2001 From: Andy McFadden Date: Thu, 25 Apr 2013 15:58:25 -0700 Subject: [PATCH] Fix range check The getarray() function checks to see if there's enough room in the buffer, but it's using a byte count for the available size and a possibly non-byte count for the space required. Dividing down by the unit size corrects the problem. Bug 8713753 Change-Id: Id42c0df65c3233dcc5f76d05e229f7d40d4c1f99 --- opengl/tools/glgen/stubs/gles11/common.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/opengl/tools/glgen/stubs/gles11/common.cpp b/opengl/tools/glgen/stubs/gles11/common.cpp index 579d573ef..75b75cb7d 100644 --- a/opengl/tools/glgen/stubs/gles11/common.cpp +++ b/opengl/tools/glgen/stubs/gles11/common.cpp @@ -272,6 +272,7 @@ getarray int _needed = 0; params = (CTYPE *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + _remaining /= sizeof(CTYPE); // convert from bytes to item count _needed = getNeededCount(pname); // if we didn't find this pname, we just assume the user passed // an array of the right size -- this might happen with extensions