From: Tobias Stoeckmann Date: Wed, 27 May 2026 18:09:00 +0000 (+0200) Subject: tests: Fix memory leaks when skipping X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=684cc957d3db85712e04a0a50adae9a5c62c8e3f;p=thirdparty%2Flibarchive.git tests: Fix memory leaks when skipping Release all resources when skipping to avoid ASAN memory leak warnings. Signed-off-by: Tobias Stoeckmann --- diff --git a/libarchive/test/test_compat_bzip2.c b/libarchive/test/test_compat_bzip2.c index e126e6f7d..8fd04a7da 100644 --- a/libarchive/test/test_compat_bzip2.c +++ b/libarchive/test/test_compat_bzip2.c @@ -48,6 +48,7 @@ compat_bzip2(const char *name) assert((a = archive_read_new()) != NULL); if (ARCHIVE_OK != archive_read_support_filter_bzip2(a)) { skipping("Unsupported bzip2"); + archive_read_free(a); return; } assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); diff --git a/libarchive/test/test_read_format_cpio_bin_bz2.c b/libarchive/test/test_read_format_cpio_bin_bz2.c index b1a994bc5..c34ed8b67 100644 --- a/libarchive/test/test_read_format_cpio_bin_bz2.c +++ b/libarchive/test/test_read_format_cpio_bin_bz2.c @@ -41,7 +41,7 @@ DEFINE_TEST(test_read_format_cpio_bin_bz2) r = archive_read_support_filter_bzip2(a); if (r != ARCHIVE_OK) { skipping("bzip2 support unavailable"); - archive_read_close(a); + archive_read_free(a); return; } assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); diff --git a/libarchive/test/test_read_format_pax_bz2.c b/libarchive/test/test_read_format_pax_bz2.c index 4f11137b9..1e3cb0791 100644 --- a/libarchive/test/test_read_format_pax_bz2.c +++ b/libarchive/test/test_read_format_pax_bz2.c @@ -48,8 +48,8 @@ DEFINE_TEST(test_read_format_pax_bz2) assert((a = archive_read_new()) != NULL); r = archive_read_support_filter_bzip2(a); if (r != ARCHIVE_OK) { - archive_read_close(a); skipping("Bzip2 unavailable"); + archive_read_free(a); return; } assertEqualIntA(a,ARCHIVE_OK, archive_read_support_format_all(a)); diff --git a/libarchive/test/test_read_format_zip.c b/libarchive/test/test_read_format_zip.c index 779cec23b..2c18387bd 100644 --- a/libarchive/test/test_read_format_zip.c +++ b/libarchive/test/test_read_format_zip.c @@ -619,7 +619,7 @@ DEFINE_TEST(test_read_format_zip_bzip2_one_file) assert((a = archive_read_new()) != NULL); if (ARCHIVE_OK != archive_read_support_filter_bzip2(a)) { skipping("bzip2 is not fully supported on this platform"); - archive_read_close(a); + archive_read_free(a); return; } extract_reference_file(refname); @@ -644,7 +644,7 @@ DEFINE_TEST(test_read_format_zip_bzip2_one_file_blockread) assert((a = archive_read_new()) != NULL); if (ARCHIVE_OK != archive_read_support_filter_bzip2(a)) { skipping("bzip2 is not fully supported on this platform"); - archive_read_close(a); + archive_read_free(a); return; } extract_reference_file(refname); @@ -669,7 +669,7 @@ DEFINE_TEST(test_read_format_zip_bzip2_multi) assert((a = archive_read_new()) != NULL); if (ARCHIVE_OK != archive_read_support_filter_bzip2(a)) { skipping("bzip2 is not fully supported on this platform"); - archive_read_close(a); + archive_read_free(a); return; } extract_reference_file(refname); @@ -706,7 +706,7 @@ DEFINE_TEST(test_read_format_zip_bzip2_multi_blockread) assert((a = archive_read_new()) != NULL); if (ARCHIVE_OK != archive_read_support_filter_bzip2(a)) { skipping("bzip2 is not fully supported on this platform"); - archive_read_close(a); + archive_read_free(a); return; } extract_reference_file(refname); @@ -968,7 +968,7 @@ DEFINE_TEST(test_read_format_zip_bz2_hang_on_invalid) assert((a = archive_read_new()) != NULL); if (ARCHIVE_OK != archive_read_support_filter_bzip2(a)) { skipping("bzip2 is not fully supported on this platform"); - archive_read_close(a); + archive_read_free(a); return; } extract_reference_file(refname); diff --git a/libarchive/test/test_write_filter_lz4.c b/libarchive/test/test_write_filter_lz4.c index 883f28061..12417b603 100644 --- a/libarchive/test/test_write_filter_lz4.c +++ b/libarchive/test/test_write_filter_lz4.c @@ -100,6 +100,8 @@ DEFINE_TEST(test_write_filter_lz4) skipping("Can't verify lz4 writing by reading back;" " lz4 reading not fully supported on this platform"); assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + free(data); + free(buff); return; }