# HG changeset patch # User Bram Moolenaar # Date 1578428106 -3600 # Node ID 568cce19fd2b0b4bfc23e38d3d4f280f4c0ceae1 # Parent 7d20bed8cd8c6f63e5ff5c95fc0535e37ae05871 patch 8.2.0099: use of NULL pointer when out of memory Commit: https://github.com/vim/vim/commit/8b7aa2f9b238df916c161cdacda032c25d72a0ae Author: Bram Moolenaar Date: Tue Jan 7 21:05:49 2020 +0100 patch 8.2.0099: use of NULL pointer when out of memory Problem: Use of NULL pointer when out of memory. Solution: Check for NULL pointer. (Dominique Pelle, closes https://github.com/vim/vim/issues/5449) diff --git a/src/cmdexpand.c b/src/cmdexpand.c --- a/src/cmdexpand.c +++ b/src/cmdexpand.c @@ -2327,7 +2327,7 @@ expand_shellcmd( char_u *path = NULL; int mustfree = FALSE; garray_T ga; - char_u *buf = alloc(MAXPATHL); + char_u *buf; size_t l; char_u *s, *e; int flags = flagsarg; @@ -2337,12 +2337,18 @@ expand_shellcmd( hashitem_T *hi; hash_T hash; + buf = alloc(MAXPATHL); if (buf == NULL) return FAIL; - // for ":set path=" and ":set tags=" halve backslashes for escaped - // space + // for ":set path=" and ":set tags=" halve backslashes for escaped space pat = vim_strsave(filepat); + if (pat == NULL) + { + vim_free(buf); + return FAIL; + } + for (i = 0; pat[i]; ++i) if (pat[i] == '\\' && pat[i + 1] == ' ') STRMOVE(pat + i, pat + i + 1); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -743,6 +743,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 99, +/**/ 98, /**/ 97,