aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-01-11 01:32:41 +0100
committerJustin M. Keyes <justinkz@gmail.com>2018-01-11 10:45:16 +0100
commit18d244eded434e6bc47b351ef00088378883bf1d (patch)
tree30864191da4a74960fe8542025639cbc7ecaf487 /src
parent911b1e49abb88a533711ce55376d2893d6424d29 (diff)
downloadrneovim-18d244eded434e6bc47b351ef00088378883bf1d.tar.gz
rneovim-18d244eded434e6bc47b351ef00088378883bf1d.tar.bz2
rneovim-18d244eded434e6bc47b351ef00088378883bf1d.zip
coverity/169163: decode_string: Null pointer deref
*** CID 169163: Null pointer dereferences (FORWARD_NULL) /src/nvim/eval/decode.c: 290 in decode_string() 284 if (elw_ret == -1) { 285 tv_clear(&tv); 286 return (typval_T) { .v_type = VAR_UNKNOWN, .v_lock = VAR_UNLOCKED }; 287 } 288 return tv; 289 } else { >>> CID 169163: Null pointer dereferences (FORWARD_NULL) >>> Passing null pointer "s" to "xmemdupz", which dereferences it. (The dereference is assumed on the basis of the 'nonnull' parameter attribute.) 290 return (typval_T) { 291 .v_type = VAR_STRING, 292 .v_lock = VAR_UNLOCKED, 293 .vval = { .v_string = (char_u *)( 294 s_allocated ? (char *)s : xmemdupz(s, len)) }, 295 };
Diffstat (limited to 'src')
-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 af4e055d23..cd967ed5c5 100644
--- a/src/nvim/eval/decode.c
+++ b/src/nvim/eval/decode.c
@@ -285,7 +285,7 @@ typval_T decode_string(const char *const s, const size_t len,
.v_type = VAR_STRING,
.v_lock = VAR_UNLOCKED,
.vval = { .v_string = (char_u *)(
- s_allocated ? (char *)s : xmemdupz(s, len)) },
+ (s == NULL || s_allocated) ? (char *)s : xmemdupz(s, len)) },
};
}
}