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 |
