mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.1.1895: using NULL pointer when out of memory
Problem: Using NULL pointer when out of memory. Solution: Bail out or skip the code using the pointer. (Zu-Ming Jiang, closes #4805, closes #4843, closes #4939, closes #4844)
This commit is contained in:
@@ -2588,16 +2588,19 @@ msg_puts_printf(char_u *str, int maxlen)
|
||||
int n = (int)(s - p);
|
||||
|
||||
buf = alloc(n + 3);
|
||||
memcpy(buf, p, n);
|
||||
if (!info_message)
|
||||
buf[n++] = CAR;
|
||||
buf[n++] = NL;
|
||||
buf[n++] = NUL;
|
||||
if (info_message) // informative message, not an error
|
||||
mch_msg((char *)buf);
|
||||
else
|
||||
mch_errmsg((char *)buf);
|
||||
vim_free(buf);
|
||||
if (buf != NULL)
|
||||
{
|
||||
memcpy(buf, p, n);
|
||||
if (!info_message)
|
||||
buf[n++] = CAR;
|
||||
buf[n++] = NL;
|
||||
buf[n++] = NUL;
|
||||
if (info_message) // informative message, not an error
|
||||
mch_msg((char *)buf);
|
||||
else
|
||||
mch_errmsg((char *)buf);
|
||||
vim_free(buf);
|
||||
}
|
||||
p = s + 1;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user