From c927eca49a326326181a5db12627ffb48f191fe2 Mon Sep 17 00:00:00 2001 From: Fabrice Bellard Date: Mon, 25 Aug 2025 15:25:41 +0200 Subject: [PATCH] fixed buffer overflow in TypedArray.prototype.lastIndexOf() --- quickjs.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/quickjs.c b/quickjs.c index 994f032..9be149d 100644 --- a/quickjs.c +++ b/quickjs.c @@ -53619,22 +53619,12 @@ static JSValue js_typed_array_indexOf(JSContext *ctx, JSValueConst this_val, if (special == special_lastIndexOf) { k = len - 1; if (argc > 1) { - if (JS_ToFloat64(ctx, &d, argv[1])) + int64_t k1; + if (JS_ToInt64Clamp(ctx, &k1, argv[1], -1, len - 1, len)) goto exception; - if (isnan(d)) { - k = 0; - } else { - if (d >= 0) { - if (d < k) { - k = d; - } - } else { - d += len; - if (d < 0) - goto done; - k = d; - } - } + k = k1; + if (k < 0) + goto done; } stop = -1; inc = -1;