]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Properly reuse rar->filename.
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>
Thu, 8 Mar 2012 04:13:53 +0000 (13:13 +0900)
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>
Thu, 8 Mar 2012 04:13:53 +0000 (13:13 +0900)
libarchive/archive_read_support_format_rar.c

index 5eda9cb30d3af819c6f1ebe0644eb90e5c5bd671..e4a3193ac760175bccae936c92922ee3d9d9d63f 100644 (file)
@@ -1162,12 +1162,16 @@ read_header(struct archive_read *a, struct archive_entry *entry,
     return (ARCHIVE_FATAL);
   }
   if (rar->filename_allocated < filename_size * 2 + 2) {
-    rar->filename = realloc(rar->filename, filename_size * 2 + 2);
-    if (rar->filename == NULL) {
+    char *newptr;
+    size_t newsize = filename_size * 2 + 2;
+    newptr = realloc(rar->filename, newsize);
+    if (newptr == NULL) {
       archive_set_error(&a->archive, ENOMEM,
                         "Couldn't allocate memory.");
       return (ARCHIVE_FATAL);
     }
+    rar->filename = newptr;
+    rar->filename_allocated = newsize;
   }
   filename = rar->filename;
   memcpy(filename, p, filename_size);