From: Michihiro NAKAJIMA Date: Thu, 8 Mar 2012 04:13:53 +0000 (+0900) Subject: Properly reuse rar->filename. X-Git-Tag: v3.0.4~2^2~24 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=de8aa82e8ed105271506ad9d92f16579843ef0cb;p=thirdparty%2Flibarchive.git Properly reuse rar->filename. --- diff --git a/libarchive/archive_read_support_format_rar.c b/libarchive/archive_read_support_format_rar.c index 5eda9cb30..e4a3193ac 100644 --- a/libarchive/archive_read_support_format_rar.c +++ b/libarchive/archive_read_support_format_rar.c @@ -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);