diff options
author | Sirisak Lueangsaksri <spywhere@me.com> | 2021-01-19 23:37:57 +0700 |
---|---|---|
committer | Sirisak Lueangsaksri <spywhere@me.com> | 2021-01-20 23:57:21 +0700 |
commit | b7d60c04836255a82656b29deb740df2cd9946a2 (patch) | |
tree | 7181088a77f42ef9c631270264bc2d6b14396f82 | |
parent | f1f170a2e7959e06bdb905fa5c0d5972b492be20 (diff) | |
download | rneovim-b7d60c04836255a82656b29deb740df2cd9946a2.tar.gz rneovim-b7d60c04836255a82656b29deb740df2cd9946a2.tar.bz2 rneovim-b7d60c04836255a82656b29deb740df2cd9946a2.zip |
opt: better handling number bounds (#13783)
-rw-r--r-- | src/nvim/option.c | 11 |
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; } |