diff --git a/lib/libarchive/test/test_read_format_gtar_sparse.c b/lib/libarchive/test/test_read_format_gtar_sparse.c index 2c4a7e3cbda2..f35ccc103264 100644 --- a/lib/libarchive/test/test_read_format_gtar_sparse.c +++ b/lib/libarchive/test/test_read_format_gtar_sparse.c @@ -201,7 +201,10 @@ verify_archive_file(const char *name, struct archive_contents *ac) while (ac->filename != NULL) { struct contents *cts = ac->contents; - assertEqualIntA(a, 0, archive_read_next_header(a, &ae)); + if (!assertEqualIntA(a, 0, archive_read_next_header(a, &ae))) { + assert(0 == archive_read_finish(a)); + return; + } failure("Name mismatch in archive %s", name); assertEqualString(ac->filename, archive_entry_pathname(ae));