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:
James McCoy
2017-03-10 17:26:22 -05:00
parent eaf1f9b9dc
commit 2ed2b1d505
8 changed files with 57 additions and 43 deletions

View File

@@ -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--;
}