mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
Fix FromJSIntArrayOrHexString [] or ”" return vector(size=0), not nullptr. (#553)
This commit is contained in:
@@ -1020,7 +1020,7 @@ FromJSIntArrayOrHexString(JSContext* ctx, JSValueConst& v, int max_len)
|
|||||||
js_get_length64(ctx, &n, v);
|
js_get_length64(ctx, &n, v);
|
||||||
|
|
||||||
if (n == 0)
|
if (n == 0)
|
||||||
return {};
|
return out;
|
||||||
|
|
||||||
if (n > max_len)
|
if (n > max_len)
|
||||||
return {};
|
return {};
|
||||||
@@ -1057,7 +1057,7 @@ FromJSIntArrayOrHexString(JSContext* ctx, JSValueConst& v, int max_len)
|
|||||||
return {};
|
return {};
|
||||||
|
|
||||||
if (len <= 0)
|
if (len <= 0)
|
||||||
return {};
|
return out;
|
||||||
|
|
||||||
if (len > (max_len << 1U))
|
if (len > (max_len << 1U))
|
||||||
return {};
|
return {};
|
||||||
@@ -8045,11 +8045,27 @@ DEFINE_JS_FUNCTION(
|
|||||||
auto cur = FromJSIntArrayOrHexString(ctx, raw_cur, 20);
|
auto cur = FromJSIntArrayOrHexString(ctx, raw_cur, 20);
|
||||||
auto isu = FromJSIntArrayOrHexString(ctx, raw_isu, 20);
|
auto isu = FromJSIntArrayOrHexString(ctx, raw_isu, 20);
|
||||||
|
|
||||||
if (!cur.has_value() && !JS_IsUndefined(raw_cur))
|
if (!cur.has_value())
|
||||||
returnJS(INVALID_ARGUMENT);
|
{
|
||||||
|
if (!JS_IsUndefined(raw_cur))
|
||||||
|
returnJS(INVALID_ARGUMENT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (cur->size() != 3 && cur->size() != 20)
|
||||||
|
returnJS(INVALID_ARGUMENT);
|
||||||
|
}
|
||||||
|
|
||||||
if (!isu.has_value() && !JS_IsUndefined(raw_isu))
|
if (!isu.has_value())
|
||||||
returnJS(INVALID_ARGUMENT);
|
{
|
||||||
|
if (!JS_IsUndefined(raw_isu))
|
||||||
|
returnJS(INVALID_ARGUMENT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (isu->size() != 20)
|
||||||
|
returnJS(INVALID_ARGUMENT);
|
||||||
|
}
|
||||||
|
|
||||||
if (any_missing(f1, fc) || !fits_u32(fc))
|
if (any_missing(f1, fc) || !fits_u32(fc))
|
||||||
returnJS(INVALID_ARGUMENT);
|
returnJS(INVALID_ARGUMENT);
|
||||||
|
|||||||
Reference in New Issue
Block a user