fixed buffer overflow in js_bigint_to_string1()

This commit is contained in:
Fabrice Bellard 2025-08-25 15:06:19 +02:00
parent 1168c215d1
commit 9ce544289f

View File

@ -11997,11 +11997,10 @@ static JSValue js_bigint_to_string1(JSContext *ctx, JSValueConst val, int radix)
bit_pos = i * log2_radix;
pos = bit_pos / JS_LIMB_BITS;
shift = bit_pos % JS_LIMB_BITS;
if (likely((shift + log2_radix) <= JS_LIMB_BITS)) {
c = r->tab[pos] >> shift;
} else {
c = (r->tab[pos] >> shift) |
(r->tab[pos + 1] << (JS_LIMB_BITS - shift));
c = r->tab[pos] >> shift;
if ((shift + log2_radix) > JS_LIMB_BITS &&
(pos + 1) < r->len) {
c |= r->tab[pos + 1] << (JS_LIMB_BITS - shift);
}
c &= (radix - 1);
*--q = digits[c];