]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Memory leaks fix for tests (#1829)
authorTERESH1 <svyatoslavtereshin@yandex.ru>
Wed, 28 Dec 2022 02:30:21 +0000 (05:30 +0300)
committerGitHub <noreply@github.com>
Wed, 28 Dec 2022 02:30:21 +0000 (18:30 -0800)
Issue #1828

cpio/cpio.c
cpio/test/test_option_J_upper.c
libarchive/test/test_read_format_rar5.c
libarchive/test/test_read_format_zip.c
libarchive/test/test_short_writes.c
tar/test/test_option_lzma.c

index 4acab9d2a118854def046819557e04d8eb0c229d..7ed6a82357c7fa9999548a0dd84cdbe4a22f681e 100644 (file)
@@ -442,6 +442,8 @@ main(int argc, char *argv[])
        archive_match_free(cpio->matching);
        free_cache(cpio->gname_cache);
        free_cache(cpio->uname_cache);
+       archive_read_close(cpio->archive_read_disk);
+       archive_read_free(cpio->archive_read_disk);
        free(cpio->destdir);
        passphrase_free(cpio->ppbuff);
        return (cpio->return_value);
index 1d7d05131b3de524d1296a152c69da21ff07f12e..e19d599e1ec780fea8b7cecde333c3ab25e2f87d 100644 (file)
@@ -43,6 +43,7 @@ DEFINE_TEST(test_option_J_upper)
                if (strstr(p, "compression not available") != NULL) {
                        skipping("This version of bsdcpio was compiled "
                            "without xz support");
+                       free(p);
                        return;
                }
                failure("-J option is broken");
index 54aae0ed17846d36d7307e0d0ce13b5e93acd23b..34f33ccb3f931cb5f8d0b11eea2513cc07e47239 100644 (file)
@@ -1310,6 +1310,8 @@ DEFINE_TEST(test_read_format_rar5_sfx)
 
        assertA(size == archive_read_data(a, buff, size));
        assertEqualMem(buff, test_txt, size);
+       
+       EPILOGUE();
 }
 
 DEFINE_TEST(test_read_format_rar5_decode_number_out_of_bounds_read)
index 642a5e222ebe01b0de780c1ffa78d6c6dee4c417..6809641432ce0b76b9ab06c5c1765fd5e56a44d8 100644 (file)
@@ -746,6 +746,7 @@ DEFINE_TEST(test_read_format_zip_zstd_one_file)
        if (ARCHIVE_OK != archive_read_support_filter_zstd(a)) {
                skipping("zstd is not fully supported on this platform");
                archive_read_close(a);
+               archive_read_free(a);
                return;
        }
        extract_reference_file(refname);
@@ -771,6 +772,7 @@ DEFINE_TEST(test_read_format_zip_zstd_one_file_blockread)
        if (ARCHIVE_OK != archive_read_support_filter_zstd(a)) {
                skipping("zstd is not fully supported on this platform");
                archive_read_close(a);
+               archive_read_free(a);
                return;
        }
        extract_reference_file(refname);
@@ -796,6 +798,7 @@ DEFINE_TEST(test_read_format_zip_zstd_multi)
        if (ARCHIVE_OK != archive_read_support_filter_zstd(a)) {
                skipping("zstd is not fully supported on this platform");
                archive_read_close(a);
+               archive_read_free(a);
                return;
        }
        extract_reference_file(refname);
@@ -833,6 +836,7 @@ DEFINE_TEST(test_read_format_zip_zstd_multi_blockread)
        if (ARCHIVE_OK != archive_read_support_filter_zstd(a)) {
                skipping("zstd is not fully supported on this platform");
                archive_read_close(a);
+               archive_read_free(a);
                return;
        }
        extract_reference_file(refname);
@@ -1017,6 +1021,7 @@ DEFINE_TEST(test_read_format_zip_lzma_alone_leak)
        if(ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
                skipping("lzma reading is not fully supported on this platform");
                archive_read_close(a);
+               archive_read_free(a);
                return;
        }
 
index afa0206f07cdfb90255496ca1f83a4e7f3b96910..8221cece17210c7f864a7666689ea5346c03e6ff 100644 (file)
@@ -171,6 +171,8 @@ checker_free(struct checker *checker)
 {
         free(checker->shortbuf);
         free(checker->fullbuf);
+       archive_read_free(checker->short_archive);
+       archive_read_free(checker->full_archive);
         free(checker);
 }
 
index a618ff8a34036acf734cf526431dd7677fdb0c25..ab6f13f91744d042791a408bb043b69eaa64b52a 100644 (file)
@@ -44,6 +44,7 @@ DEFINE_TEST(test_option_lzma)
                if (strstr(p, "Unsupported compression") != NULL) {
                        skipping("This version of bsdtar was compiled "
                            "without lzma support");
+                       free(p);
                        return;
                }
                failure("--lzma option is broken");