mirror of
https://github.com/neovim/neovim.git
synced 2025-09-13 23:08:16 +00:00
vim-patch:7.4.2223
Problem: Buffer overflow when using latin1 character with feedkeys().
Solution: Check for an illegal character. Add a test.
d3c907b5d2
This commit is contained in:
@@ -16932,7 +16932,7 @@ static void f_strgetchar(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
break;
|
||||
}
|
||||
charidx--;
|
||||
byteidx += mb_cptr2len(str + byteidx);
|
||||
byteidx += MB_CPTR2LEN(str + byteidx);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17054,7 +17054,7 @@ static void f_strcharpart(typval_T *argvars, typval_T *rettv, FunPtr fptr) {
|
||||
if (!error) {
|
||||
if (nchar > 0) {
|
||||
while (nchar > 0 && nbyte < slen) {
|
||||
nbyte += mb_cptr2len(p + nbyte);
|
||||
nbyte += MB_CPTR2LEN(p + nbyte);
|
||||
nchar--;
|
||||
}
|
||||
} else {
|
||||
@@ -17069,7 +17069,7 @@ static void f_strcharpart(typval_T *argvars, typval_T *rettv, FunPtr fptr) {
|
||||
if (off < 0) {
|
||||
len += 1;
|
||||
} else {
|
||||
len += mb_cptr2len(p + off);
|
||||
len += MB_CPTR2LEN(p + off);
|
||||
}
|
||||
charlen--;
|
||||
}
|
||||
|
Reference in New Issue
Block a user