aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2024-01-07 12:25:25 -0500
committerGitHub <noreply@github.com>2024-01-07 12:25:25 -0500
commit367e52cc79a786bbee4456b30f9ec5db7e28d6a5 (patch)
treeb380e60465dc41cb5c585aea414be84d292d07a9 /src
parent8df37423781493f58de060e1c9219cd1c3768130 (diff)
downloadrneovim-367e52cc79a786bbee4456b30f9ec5db7e28d6a5.tar.gz
rneovim-367e52cc79a786bbee4456b30f9ec5db7e28d6a5.tar.bz2
rneovim-367e52cc79a786bbee4456b30f9ec5db7e28d6a5.zip
fix(tui): use buflen to calculate remaining buffer size (#26942)
buf is a pointer argument, not a local char array, so sizeof(buf) is just the size of a pointer type on the platform. This is always an incorrect value, but on 32-bit platforms it actually has an impact, since sizeof(buf) is just 4 and causes the buffer to get truncated.
Diffstat (limited to 'src')
-rw-r--r--src/nvim/tui/input.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/tui/input.c b/src/nvim/tui/input.c
index eb5e1c65d2..903e12b095 100644
--- a/src/nvim/tui/input.c
+++ b/src/nvim/tui/input.c
@@ -237,13 +237,13 @@ static size_t handle_termkey_modifiers(TermKeyKey *key, char *buf, size_t buflen
{
size_t len = 0;
if (key->modifiers & TERMKEY_KEYMOD_SHIFT) { // Shift
- len += (size_t)snprintf(buf + len, sizeof(buf) - len, "S-");
+ len += (size_t)snprintf(buf + len, buflen - len, "S-");
}
if (key->modifiers & TERMKEY_KEYMOD_ALT) { // Alt
- len += (size_t)snprintf(buf + len, sizeof(buf) - len, "A-");
+ len += (size_t)snprintf(buf + len, buflen - len, "A-");
}
if (key->modifiers & TERMKEY_KEYMOD_CTRL) { // Ctrl
- len += (size_t)snprintf(buf + len, sizeof(buf) - len, "C-");
+ len += (size_t)snprintf(buf + len, buflen - len, "C-");
}
assert(len < buflen);
return len;