forked from aniani/vim
patch 8.1.2119: memory access error for empty string
Problem: memory access error for empty string when 'encoding' is a single byte encoding. Solution: Check for empty string when getting the length. (Dominique Pelle, closes #5021, closes #5007)
This commit is contained in:
parent
eb66328bd7
commit
524f3b19ae
@ -230,11 +230,11 @@
|
||||
* PTR2CHAR(): get character from pointer.
|
||||
*/
|
||||
/* Get the length of the character p points to, including composing chars */
|
||||
#define MB_PTR2LEN(p) (has_mbyte ? (*mb_ptr2len)(p) : 1)
|
||||
#define MB_PTR2LEN(p) (has_mbyte ? (*mb_ptr2len)(p) : (*p == NUL ? 0 : 1))
|
||||
/* Advance multi-byte pointer, skip over composing chars. */
|
||||
#define MB_PTR_ADV(p) p += has_mbyte ? (*mb_ptr2len)(p) : 1
|
||||
#define MB_PTR_ADV(p) p += has_mbyte ? (*mb_ptr2len)(p) : (*p == NUL ? 0 : 1)
|
||||
/* Advance multi-byte pointer, do not skip over composing chars. */
|
||||
#define MB_CPTR_ADV(p) p += enc_utf8 ? utf_ptr2len(p) : has_mbyte ? (*mb_ptr2len)(p) : 1
|
||||
#define MB_CPTR_ADV(p) p += enc_utf8 ? utf_ptr2len(p) : has_mbyte ? (*mb_ptr2len)(p) : (*p == NUL ? 0 : 1)
|
||||
/* Backup multi-byte pointer. Only use with "p" > "s" ! */
|
||||
#define MB_PTR_BACK(s, p) p -= has_mbyte ? ((*mb_head_off)(s, p - 1) + 1) : 1
|
||||
/* get length of multi-byte char, not including composing chars */
|
||||
|
@ -753,6 +753,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2119,
|
||||
/**/
|
||||
2118,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user