]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
The memory leaks I fixed in r3854 happened when liblzma verion < 5.0.3
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>
Sun, 27 Nov 2011 11:17:12 +0000 (06:17 -0500)
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>
Sun, 27 Nov 2011 11:17:12 +0000 (06:17 -0500)
SVN-Revision: 3862

libarchive/archive_read_support_filter_xz.c
libarchive/archive_read_support_format_7zip.c

index 65fbf48ec70067b15167d810a6858c3af98051d1..cf762a46d9842352942b4d7d4496e7b1be607f84 100644 (file)
@@ -598,7 +598,9 @@ lzip_init(struct archive_read_filter *self)
                return (ARCHIVE_FATAL);
        }
        ret = lzma_raw_decoder(&(state->stream), filters);
+#if LZMA_VERSION < 50000030
        free(filters[0].options);
+#endif
        if (ret != LZMA_OK) {
                set_error(self, ret);
                return (ARCHIVE_FATAL);
index d19893d8dd6c3ba0b661b6913f5584905c7adae3..dee262d89f7314fffc6003a9a6a7c9df43c19990 100644 (file)
@@ -791,7 +791,10 @@ init_decompression(struct archive_read *a, struct _7zip *zip,
 #endif
        {
                lzma_options_delta delta_opt;
-               lzma_filter filters[LZMA_FILTERS_MAX], *ff;
+               lzma_filter filters[LZMA_FILTERS_MAX];
+#if LZMA_VERSION < 50000030
+               lzma_filter *ff;
+#endif
                int fi = 0;
 
                if (zip->lzstream_valid) {
@@ -857,7 +860,9 @@ init_decompression(struct archive_read *a, struct _7zip *zip,
                else
                        filters[fi].id = LZMA_FILTER_LZMA1;
                filters[fi].options = NULL;
+#if LZMA_VERSION < 50000030
                ff = &filters[fi];
+#endif
                r = lzma_properties_decode(&filters[fi], NULL,
                    folder->coders[0].properties,
                    folder->coders[0].propertiesSize);
@@ -870,7 +875,9 @@ 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);
+#if LZMA_VERSION < 50000030
                free(ff->options);
+#endif
                if (r != LZMA_OK) {
                        set_error(a, r);
                        return (ARCHIVE_FAILED);