mirror of
https://github.com/ccxvii/mujs.git
synced 2026-02-05 17:29:43 +08:00
Check for leading zero in js_isarrayindex that caused false positives.
We're supposed to check whether a string turned into an integer and back is itself, while also returning the value of the integer. We were unintentionally allowing integers with leading zero through.
This commit is contained in:
5
jsrun.c
5
jsrun.c
@@ -444,6 +444,11 @@ void js_rot(js_State *J, int n)
|
||||
int js_isarrayindex(js_State *J, const char *p, int *idx)
|
||||
{
|
||||
int n = 0;
|
||||
|
||||
/* check for '0' and integers with leading zero */
|
||||
if (p[0] == '0')
|
||||
return (p[1] == 0) ? *idx = 0, 1 : 0;
|
||||
|
||||
while (*p) {
|
||||
int c = *p++;
|
||||
if (c >= '0' && c <= '9') {
|
||||
|
||||
Reference in New Issue
Block a user