Skip to content
Snippets Groups Projects
Commit 43ccc3f0 authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Fix system.matchuserdata() bug caught by tests/system/rtypes.js on rpi4

Argument count wasn't checked before checking/parsing each optional
argument.

Also noticed/ that the 'match_del' parameter added in commit
e61eb77b didn't advance the argument index, fixed that issue.
parent 946bade2
Branches
Tags
No related merge requests found
Pipeline #7895 passed
...@@ -985,23 +985,19 @@ js_matchuserdata(JSContext *cx, uintN argc, jsval *arglist) ...@@ -985,23 +985,19 @@ js_matchuserdata(JSContext *cx, uintN argc, jsval *arglist)
return JS_FALSE; return JS_FALSE;
} }
if ((js_str = JS_ValueToString(cx, argv[1])) == NULL) { if ((js_str = JS_ValueToString(cx, argv[1])) == NULL)
JS_SET_RVAL(cx, arglist, INT_TO_JSVAL(0)); return JS_FALSE;
return JS_TRUE;
}
if (JSVAL_IS_BOOLEAN(argv[argnum])) if (argnum < argc && JSVAL_IS_BOOLEAN(argv[argnum]))
JS_ValueToBoolean(cx, argv[argnum], &match_del); JS_ValueToBoolean(cx, argv[argnum++], &match_del);
if (JSVAL_IS_NUMBER(argv[argnum])) if (argnum < argc && JSVAL_IS_NUMBER(argv[argnum]))
JS_ValueToInt32(cx, argv[argnum++], &usernumber); JS_ValueToInt32(cx, argv[argnum++], &usernumber);
if (JSVAL_IS_BOOLEAN(argv[argnum])) if (argnum < argc && JSVAL_IS_BOOLEAN(argv[argnum]))
JS_ValueToBoolean(cx, argv[argnum], &match_next); JS_ValueToBoolean(cx, argv[argnum++], &match_next);
JSSTRING_TO_ASTRING(cx, js_str, p, 128, NULL); JSSTRING_TO_ASTRING(cx, js_str, p, 128, NULL);
if (p == NULL) { if (p == NULL)
JS_SET_RVAL(cx, arglist, INT_TO_JSVAL(0)); return JS_FALSE;
return JS_TRUE;
}
rc = JS_SUSPENDREQUEST(cx); rc = JS_SUSPENDREQUEST(cx);
JS_SET_RVAL(cx, arglist, INT_TO_JSVAL(finduserstr(sys->cfg, usernumber, field, p, match_del, match_next, NULL, NULL))); JS_SET_RVAL(cx, arglist, INT_TO_JSVAL(finduserstr(sys->cfg, usernumber, field, p, match_del, match_next, NULL, NULL)));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment