aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/decode.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2020-08-25 12:40:50 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2020-09-04 23:29:51 +0200
commitb33e375b2b4e6c9232cdbfd5d6b7cb1b15e0f525 (patch)
treeed2d0c84ed966a55bd0b1bfadfb0b8fedb434e14 /src/nvim/eval/decode.c
parent7593c8012b1d183ce4806daca3fb50795ab969bf (diff)
downloadrneovim-b33e375b2b4e6c9232cdbfd5d6b7cb1b15e0f525.tar.gz
rneovim-b33e375b2b4e6c9232cdbfd5d6b7cb1b15e0f525.tar.bz2
rneovim-b33e375b2b4e6c9232cdbfd5d6b7cb1b15e0f525.zip
robustness: avoid adding offset to NULL pointer
UBSAN with clang 10.0 is checking for adding offsets to a `NULL` pointer which is not allowed. This is not yet checked in the version of clang used in CI (7.0.0). I will work on cases of this so that tests passes locally for me. This could be tested in CI by either upgrading the clang of the ASAN/UBSAN to 10.0, or add yet another CI target which builds with clang 10.0.
Diffstat (limited to 'src/nvim/eval/decode.c')
-rw-r--r--src/nvim/eval/decode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/nvim/eval/decode.c b/src/nvim/eval/decode.c
index daba304f00..638fef331a 100644
--- a/src/nvim/eval/decode.c
+++ b/src/nvim/eval/decode.c
@@ -586,7 +586,7 @@ parse_json_number_check:
if (p == ints) {
emsgf(_("E474: Missing number after minus sign: %.*s"), LENP(s, e));
goto parse_json_number_fail;
- } else if (p == fracs || exps_s == fracs + 1) {
+ } else if (p == fracs || (fracs != NULL && exps_s == fracs + 1)) {
emsgf(_("E474: Missing number after decimal dot: %.*s"), LENP(s, e));
goto parse_json_number_fail;
} else if (p == exps) {