Mercurial > vim
diff src/message.c @ 17797:ec1717981acf v8.1.1895
patch 8.1.1895: using NULL pointer when out of memory
commit https://github.com/vim/vim/commit/6f10c70b59fa4e56aa479345fb0caeaac7429bfb
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Aug 20 22:58:37 2019 +0200
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)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 20 Aug 2019 23:00:04 +0200 |
parents | 0f7ae8010787 |
children | 46f95606b9ec |
line wrap: on
line diff
--- a/src/message.c +++ b/src/message.c @@ -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; } }