1
0
forked from aniani/vim

patch 8.2.2934: ASAN error when using text from the clipboard

Problem:    ASAN error when using text from the clipboard.
Solution:   Get width of each character.
This commit is contained in:
Bram Moolenaar
2021-06-04 18:33:49 +02:00
parent 6e0b553fa1
commit 24951a67c2
2 changed files with 6 additions and 3 deletions

View File

@@ -2908,11 +2908,12 @@ str_to_reg(
{ {
charlen = 0; charlen = 0;
for (i = start; i < len; ++i) // find the end of the line for (i = start; i < len; ++i) // find the end of the line
{
if (str[i] == '\n') if (str[i] == '\n')
break; break;
charlen += mb_ptr2cells_len(str + i, len - i);
}
i -= start; // i is now length of line i -= start; // i is now length of line
if (start < len)
charlen = mb_charlen_len(str + start, i);
if (charlen > maxlen) if (charlen > maxlen)
maxlen = charlen; maxlen = charlen;
if (append) if (append)
@@ -2929,7 +2930,7 @@ str_to_reg(
mch_memmove(s, y_ptr->y_array[lnum], (size_t)extra); mch_memmove(s, y_ptr->y_array[lnum], (size_t)extra);
if (append) if (append)
vim_free(y_ptr->y_array[lnum]); vim_free(y_ptr->y_array[lnum]);
if (i) if (i > 0)
mch_memmove(s + extra, str + start, (size_t)i); mch_memmove(s + extra, str + start, (size_t)i);
extra += i; extra += i;
s[extra] = NUL; s[extra] = NUL;

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2934,
/**/ /**/
2933, 2933,
/**/ /**/