patch 7.4.2223
Problem: Buffer overflow when using latin1 character with feedkeys().
Solution: Check for an illegal character. Add a test.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index cc38d94..b427ecf 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -11166,7 +11166,7 @@
break;
}
--charidx;
- byteidx += mb_cptr2len(str + byteidx);
+ byteidx += MB_CPTR2LEN(str + byteidx);
}
}
#else
@@ -11326,7 +11326,7 @@
if (nchar > 0)
while (nchar > 0 && nbyte < slen)
{
- nbyte += mb_cptr2len(p + nbyte);
+ nbyte += MB_CPTR2LEN(p + nbyte);
--nchar;
}
else
@@ -11341,7 +11341,7 @@
if (off < 0)
len += 1;
else
- len += mb_cptr2len(p + off);
+ len += MB_CPTR2LEN(p + off);
--charlen;
}
}