aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Wang <wangjiahao@openresty.com>2021-10-19 18:06:49 +0800
committerGitHub <noreply@github.com>2021-10-19 18:06:49 +0800
commitf416d2675eb36e3dd2d2b3882058233327ea3c07 (patch)
tree17c76b0f5f9e8bdfdfc8ad1941e04acc1129f537
parent8dadbca8c7c26fc38e23f1f685c285450acb783e (diff)
downloadlua-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.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/dtoa.c b/dtoa.c
index 56398ba..4067e5b 100644
--- a/dtoa.c
+++ b/dtoa.c
@@ -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