diff options
author | Saúl Ibarra Corretgé <s@saghul.net> | 2023-12-22 22:50:02 +0100 |
---|---|---|
committer | Saúl Ibarra Corretgé <s@saghul.net> | 2024-02-11 20:59:17 +0100 |
commit | e53d62235968ebbde3ba7bcef64cd9458cbfb8da (patch) | |
tree | c04b1460d4101b3443275a4b48dab070f3e3fe02 /quickjs.c | |
parent | fd6e039770e3ec740aae258e42b6f16ea26e21bf (diff) | |
download | quickjs-e53d62235968ebbde3ba7bcef64cd9458cbfb8da.tar.gz quickjs-e53d62235968ebbde3ba7bcef64cd9458cbfb8da.zip |
Fix UB in js_dtoa1
Diffstat (limited to 'quickjs.c')
-rw-r--r-- | quickjs.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -11492,8 +11492,10 @@ static void js_dtoa1(char *buf, double d, int radix, int n_digits, int flags) } else if (flags == JS_DTOA_VAR_FORMAT) { int64_t i64; char buf1[70], *ptr; + if (d > (double)MAX_SAFE_INTEGER || d < (double)-MAX_SAFE_INTEGER) + goto generic_conv; i64 = (int64_t)d; - if (d != i64 || i64 > MAX_SAFE_INTEGER || i64 < -MAX_SAFE_INTEGER) + if (d != i64) goto generic_conv; /* fast path for integers */ ptr = i64toa(buf1 + sizeof(buf1), i64, radix); |