aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-05-15 19:38:50 +0800
committerGitHub <noreply@github.com>2024-05-15 19:38:50 +0800
commit61a0aa6c51fb689d196eae37de7d5a75b330efff (patch)
tree643588674ffa9a58f79cbc386cf63304bf69cc00
parent14a5813c207716613daecf4ca9f69e3a3795596a (diff)
downloadrneovim-61a0aa6c51fb689d196eae37de7d5a75b330efff.tar.gz
rneovim-61a0aa6c51fb689d196eae37de7d5a75b330efff.tar.bz2
rneovim-61a0aa6c51fb689d196eae37de7d5a75b330efff.zip
fix(messages): avoid passing negative length to strnlen() (#28753)
Problem: Compiler warning when building Nvim in Release mode: In function ‘msg_puts_display’, inlined from ‘disp_sb_line’ at **/src/nvim/message.c:2647:5: **/src/nvim/message.c:2165:18: warning: ‘strnlen’ specified bound 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overread] 2165 | size_t len = strnlen(str, (size_t)maxlen); | ^ Solution: Use strlen() when maxlen is negative.
-rw-r--r--src/nvim/message.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/nvim/message.c b/src/nvim/message.c
index 0757acfd0d..10b90bde29 100644
--- a/src/nvim/message.c
+++ b/src/nvim/message.c
@@ -2162,7 +2162,7 @@ static void msg_puts_display(const char *str, int maxlen, int attr, int recurse)
msg_ext_last_attr = attr;
}
// Concat pieces with the same highlight
- size_t len = strnlen(str, (size_t)maxlen);
+ size_t len = maxlen < 0 ? strlen(str) : strnlen(str, (size_t)maxlen);
ga_concat_len(&msg_ext_last_chunk, str, len);
msg_ext_cur_len += len;
return;