aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-11-17 07:18:12 +0800
committerzeertzjq <zeertzjq@outlook.com>2023-11-17 07:19:14 +0800
commit9d39ad63182cebe18f89152f2239ff8aeff58308 (patch)
tree827a1d203588a6688a3e7c6cf82d7417deaf4690 /src
parent809b05bf276892101895a713e1b8d1c209e5dfb7 (diff)
downloadrneovim-9d39ad63182cebe18f89152f2239ff8aeff58308.tar.gz
rneovim-9d39ad63182cebe18f89152f2239ff8aeff58308.tar.bz2
rneovim-9d39ad63182cebe18f89152f2239ff8aeff58308.zip
vim-patch:9.0.2111: [security]: overflow in get_number
Problem: [security]: overflow in get_number Solution: Return 0 when the count gets too large [security]: overflow in get_number When using the z= command, we may overflow the count with values larger than MAX_INT. So verify that we do not overflow and in case when an overflow is detected, simply return 0 https://github.com/vim/vim/commit/73b2d3790cad5694fc0ed0db2926e4220c48d968 Co-authored-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src')
-rw-r--r--src/nvim/input.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/nvim/input.c b/src/nvim/input.c
index 2f5eb49ce0..d6ade22fdb 100644
--- a/src/nvim/input.c
+++ b/src/nvim/input.c
@@ -180,6 +180,9 @@ int get_number(int colon, int *mouse_used)
ui_cursor_goto(msg_row, msg_col);
int c = safe_vgetc();
if (ascii_isdigit(c)) {
+ if (n > INT_MAX / 10) {
+ return 0;
+ }
n = n * 10 + c - '0';
msg_putchar(c);
typed++;