]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
fix potential leak on exit
authorYann Collet <cyan@fb.com>
Tue, 2 Mar 2021 23:03:37 +0000 (15:03 -0800)
committerYann Collet <cyan@fb.com>
Tue, 2 Mar 2021 23:03:37 +0000 (15:03 -0800)
contrib/seekable_format/zstdseek_decompress.c

index 9bc7dd21de08e1d5255a4ee21e5813c847295a27..749d6cd9fa2a692cc762b70cbad3ce40173fd3d7 100644 (file)
@@ -195,26 +195,22 @@ size_t ZSTD_seekable_free(ZSTD_seekable* zs)
     ZSTD_freeDStream(zs->dstream);
     free(zs->seekTable.entries);
     free(zs);
-
     return 0;
 }
 
 size_t ZSTD_seekable_copySeekTable(ZSTD_seekable* zs, ZSTD_seekTable** out)
 {
-    ZSTD_seekTable* st = malloc(sizeof(ZSTD_seekTable));
-    if (!st) {
-        free(st);
-        return ERROR(memory_allocation);
-    }
+    ZSTD_seekTable* const st = malloc(sizeof(ZSTD_seekTable));
+    if (st==NULL) return ERROR(memory_allocation);
 
     st->checksumFlag = zs->seekTable.checksumFlag;
     st->tableLen = zs->seekTable.tableLen;
 
     /* Allocate an extra entry at the end to match logic of initial allocation */
     size_t entriesSize = sizeof(seekEntry_t) * (zs->seekTable.tableLen + 1);
-    seekEntry_t* entries = (seekEntry_t*)malloc(entriesSize);
-    if (!entries) {
-        free(entries);
+    seekEntry_t* const entries = (seekEntry_t*)malloc(entriesSize);
+    if (entries==NULL) {
+        free(st);
         return ERROR(memory_allocation);
     }
 
@@ -230,7 +226,6 @@ size_t ZSTD_seekTable_free(ZSTD_seekTable* st)
     if (st == NULL) return 0; /* support free on null */
     free(st->entries);
     free(st);
-
     return 0;
 }