aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSirisak Lueangsaksri <spywhere@me.com>2021-01-19 23:37:57 +0700
committerSirisak Lueangsaksri <spywhere@me.com>2021-01-20 23:57:21 +0700
commitb7d60c04836255a82656b29deb740df2cd9946a2 (patch)
tree7181088a77f42ef9c631270264bc2d6b14396f82
parentf1f170a2e7959e06bdb905fa5c0d5972b492be20 (diff)
downloadrneovim-b7d60c04836255a82656b29deb740df2cd9946a2.tar.gz
rneovim-b7d60c04836255a82656b29deb740df2cd9946a2.tar.bz2
rneovim-b7d60c04836255a82656b29deb740df2cd9946a2.zip
opt: better handling number bounds (#13783)
-rw-r--r--src/nvim/option.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c
index a3b1e7208d..febcfd882b 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -3245,10 +3245,15 @@ int check_signcolumn(char_u *val)
// check for 'auto:<NUMBER>-<NUMBER>'
if (STRLEN(val) == 8
&& !STRNCMP(val, "auto:", 5)
- && ascii_isdigit(*(val + 5))
- && *(val + 6) == '-'
- && ascii_isdigit(*(val + 7))
+ && ascii_isdigit(val[5])
+ && val[6] == '-'
+ && ascii_isdigit(val[7])
) {
+ int min = val[5] - '0';
+ int max = val[7] - '0';
+ if (min < 1 || max < 2 || min > 8 || max > 9 || min >= max) {
+ return FAIL;
+ }
return OK;
}