diff options
author | Johnny Wang <wangjiahao@openresty.com> | 2021-10-19 18:06:49 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-19 18:06:49 +0800 |
commit | f416d2675eb36e3dd2d2b3882058233327ea3c07 (patch) | |
tree | 17c76b0f5f9e8bdfdfc8ad1941e04acc1129f537 | |
parent | 8dadbca8c7c26fc38e23f1f685c285450acb783e (diff) | |
download | lua-cjson-f416d2675eb36e3dd2d2b3882058233327ea3c07.tar.gz lua-cjson-f416d2675eb36e3dd2d2b3882058233327ea3c07.tar.bz2 lua-cjson-f416d2675eb36e3dd2d2b3882058233327ea3c07.zip |
bugfix: fixed bugs suspected by cppcheck: shift signed 32-bit value by 31 bits and uninitialized variable. (#76)
[dtoa.c:2453] -> [dtoa.c:2454]: (warning) Shifting signed 32-bit value by 31 bits is undefined behaviour. See condition at line 2453.
[dtoa.c:2846]: (error) Uninitialized variable: bb
[dtoa.c:2847]: (error) Uninitialized variable: bd
[dtoa.c:2848]: (error) Uninitialized variable: bs
[dtoa.c:2850]: (error) Uninitialized variable: delta
-rw-r--r-- | dtoa.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -2451,10 +2451,10 @@ retlow1: | |||
2451 | if ((j = ((word0(rv) & Exp_mask) >> Exp_shift) - bc->scale) <= 0) { | 2451 | if ((j = ((word0(rv) & Exp_mask) >> Exp_shift) - bc->scale) <= 0) { |
2452 | i = 1 - j; | 2452 | i = 1 - j; |
2453 | if (i <= 31) { | 2453 | if (i <= 31) { |
2454 | if (word1(rv) & (0x1 << i)) | 2454 | if (word1(rv) & (0x1U << i)) |
2455 | goto odd; | 2455 | goto odd; |
2456 | } | 2456 | } |
2457 | else if (word0(rv) & (0x1 << (i-32))) | 2457 | else if (word0(rv) & (0x1U << (i-32))) |
2458 | goto odd; | 2458 | goto odd; |
2459 | } | 2459 | } |
2460 | else if (word1(rv) & 1) { | 2460 | else if (word1(rv) & 1) { |
@@ -2488,7 +2488,11 @@ fpconv_strtod | |||
2488 | U aadj2, adj, rv, rv0; | 2488 | U aadj2, adj, rv, rv0; |
2489 | ULong y, z; | 2489 | ULong y, z; |
2490 | BCinfo bc; | 2490 | BCinfo bc; |
2491 | Bigint *bb, *bb1, *bd, *bd0, *bs, *delta; | 2491 | Bigint *bb1, *bd0; |
2492 | Bigint *bb = NULL; | ||
2493 | Bigint *bd = NULL; | ||
2494 | Bigint *bs = NULL; | ||
2495 | Bigint *delta = NULL; | ||
2492 | #ifdef Avoid_Underflow | 2496 | #ifdef Avoid_Underflow |
2493 | ULong Lsb, Lsb1; | 2497 | ULong Lsb, Lsb1; |
2494 | #endif | 2498 | #endif |