From: Michihiro NAKAJIMA Date: Sun, 27 Nov 2011 03:44:07 +0000 (-0500) Subject: Fix memory leaks. X-Git-Tag: v3.0.1b~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=936b5d19cd230b4dcb6d4244090167290beb7fb2;p=thirdparty%2Flibarchive.git Fix memory leaks. SVN-Revision: 3854 --- diff --git a/libarchive/archive_read_support_filter_xz.c b/libarchive/archive_read_support_filter_xz.c index b0062c714..65fbf48ec 100644 --- a/libarchive/archive_read_support_filter_xz.c +++ b/libarchive/archive_read_support_filter_xz.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2009,2010 Michihiro NAKAJIMA + * Copyright (c) 2009-2011 Michihiro NAKAJIMA * Copyright (c) 2003-2008 Tim Kientzle and Miklos Vajna * All rights reserved. * @@ -598,6 +598,7 @@ lzip_init(struct archive_read_filter *self) return (ARCHIVE_FATAL); } ret = lzma_raw_decoder(&(state->stream), filters); + free(filters[0].options); if (ret != LZMA_OK) { set_error(self, ret); return (ARCHIVE_FATAL); diff --git a/libarchive/archive_read_support_format_7zip.c b/libarchive/archive_read_support_format_7zip.c index ed2aa635d..cf7809675 100644 --- a/libarchive/archive_read_support_format_7zip.c +++ b/libarchive/archive_read_support_format_7zip.c @@ -695,7 +695,7 @@ init_decompression(struct archive_read *a, struct _7zip *zip, #endif { lzma_options_delta delta_opt; - lzma_filter filters[LZMA_FILTERS_MAX]; + lzma_filter filters[LZMA_FILTERS_MAX], *ff; int fi = 0; if (zip->lzstream_valid) { @@ -761,6 +761,7 @@ init_decompression(struct archive_read *a, struct _7zip *zip, else filters[fi].id = LZMA_FILTER_LZMA1; filters[fi].options = NULL; + ff = &filters[fi]; r = lzma_properties_decode(&filters[fi], NULL, folder->coders[0].properties, folder->coders[0].propertiesSize); @@ -773,6 +774,7 @@ init_decompression(struct archive_read *a, struct _7zip *zip, filters[fi].id = LZMA_VLI_UNKNOWN; filters[fi].options = NULL; r = lzma_raw_decoder(&(zip->lzstream), filters); + free(ff->options); if (r != LZMA_OK) { set_error(a, r); return (ARCHIVE_FAILED);