Mercurial > vim
diff src/popupmnu.c @ 16429:a1229400434a v8.1.1219
patch 8.1.1219: not checking for NULL return from alloc()
commit https://github.com/vim/vim/commit/6ee9658774942f7448af700fc04df0335796a3db
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Apr 27 22:06:37 2019 +0200
patch 8.1.1219: not checking for NULL return from alloc()
Problem: Not checking for NULL return from alloc().
Solution: Add checks. (Martin Kunev, closes https://github.com/vim/vim/issues/4303, closes https://github.com/vim/vim/issues/4174)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 27 Apr 2019 22:15:05 +0200 |
parents | 0f65f2808470 |
children | ff3c99bd1038 |
line wrap: on
line diff
--- a/src/popupmnu.c +++ b/src/popupmnu.c @@ -1102,12 +1102,19 @@ split_message(char_u *mesg, pumitem_T ** else thislen = item->bytelen; - /* put indent at the start */ + // put indent at the start p = alloc(thislen + item->indent * 2 + 1); + if (p == NULL) + { + for (line = 0; line <= height - 1; ++line) + vim_free((*array)[line].pum_text); + vim_free(*array); + goto failed; + } for (ind = 0; ind < item->indent * 2; ++ind) p[ind] = ' '; - /* exclude spaces at the end of the string */ + // exclude spaces at the end of the string for (copylen = thislen; copylen > 0; --copylen) if (item->start[skip + copylen - 1] != ' ') break;