]> granicus.if.org Git - vim/commitdiff
patch 8.1.2372: VMS: failing realloc leaks memory v8.1.2372
authorBram Moolenaar <Bram@vim.org>
Sat, 30 Nov 2019 21:57:53 +0000 (22:57 +0100)
committerBram Moolenaar <Bram@vim.org>
Sat, 30 Nov 2019 21:57:53 +0000 (22:57 +0100)
Problem:    VMS: failing realloc leaks memory. (Chakshu Gupta)
Solution:   Free the memory. (partly fixes #5292)

src/os_vms.c
src/version.c

index 769377673c76cfa06252f1aaa96721cf9922e030..8845b28a9f13c368024ab6fbbeb56fbe319f7aca 100644 (file)
@@ -404,12 +404,17 @@ vms_wproc(char *name, int val)
            return 1;
     }
     if (--vms_match_free == 0) {
+       char_u **old_vms_fmatch = vms_fmatch;
+
        /* add more space to store matches */
        vms_match_alloced += EXPL_ALLOC_INC;
-       vms_fmatch = vim_realloc(vms_fmatch,
+       vms_fmatch = vim_realloc(old_vms_fmatch,
                sizeof(char **) * vms_match_alloced);
        if (!vms_fmatch)
+       {
+           vim_free(old_vms_fmatch);
            return 0;
+       }
        vms_match_free = EXPL_ALLOC_INC;
     }
     vms_fmatch[vms_match_num] = vim_strsave((char_u *)name);
@@ -489,10 +494,13 @@ mch_expand_wildcards(int num_pat, char_u **pat, int *num_file, char_u ***file, i
            /* allocate memory for pointers */
            if (--files_free < 1)
            {
+               char_u **old_file = *file;
+
                files_alloced += EXPL_ALLOC_INC;
-               *file = vim_realloc(*file, sizeof(char_u **) * files_alloced);
+               *file = vim_realloc(old_file, sizeof(char_u **) * files_alloced);
                if (*file == NULL)
                {
+                   vim_free(old_file);
                    *file = (char_u **)"";
                    *num_file = 0;
                    return(FAIL);
index 281fafc7d1f6f6f3f54355df318bde569d9067aa..790607575cbb0ad587c3b88375ed381f640ad9f7 100644 (file)
@@ -742,6 +742,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2372,
 /**/
     2371,
 /**/