]> granicus.if.org Git - vim/commitdiff
patch 8.2.4158: MS-Windows: memory leak in :browse v8.2.4158
authorK.Takata <kentkt@csc.jp>
Thu, 20 Jan 2022 15:05:22 +0000 (15:05 +0000)
committerBram Moolenaar <Bram@vim.org>
Thu, 20 Jan 2022 15:05:22 +0000 (15:05 +0000)
Problem:    MS-Windows: memory leak in :browse.
Solution:   Free stuff before returning. (Ken Takata, closes #9574)

src/gui_w32.c
src/version.c

index cbbae9edd6984ba709cd1382eb3ed056321ff9cf..27e36085a9c05d1385320f59b909a3299fa46b23 100644 (file)
@@ -3587,6 +3587,7 @@ gui_mch_browse(
     WCHAR              *initdirp = NULL;
     WCHAR              *filterp;
     char_u             *p, *q;
+    BOOL               ret;
 
     if (dflt == NULL)
        fileBuf[0] = NUL;
@@ -3655,22 +3656,19 @@ gui_mch_browse(
        fileStruct.Flags |= OFN_NODEREFERENCELINKS;
 # endif
     if (saving)
-    {
-       if (!GetSaveFileNameW(&fileStruct))
-           return NULL;
-    }
+       ret = GetSaveFileNameW(&fileStruct);
     else
-    {
-       if (!GetOpenFileNameW(&fileStruct))
-           return NULL;
-    }
+       ret = GetOpenFileNameW(&fileStruct);
 
     vim_free(filterp);
     vim_free(initdirp);
     vim_free(titlep);
     vim_free(extp);
 
-    // Convert from UCS2 to 'encoding'.
+    if (!ret)
+       return NULL;
+
+    // Convert from UTF-16 to 'encoding'.
     p = utf16_to_enc(fileBuf, NULL);
     if (p == NULL)
        return NULL;
index b79f066f51850eb68e5719bd1af1b8bd2d077e83..bde5d76795ded7cb1694c19367a270d9e2bf85e3 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    4158,
 /**/
     4157,
 /**/