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
This commit is contained in:
parent
dfc11ac5c2
commit
42137d2e72
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user