From 9515da8712f82e29b05b86cbf47dc3a0c27159a4 Mon Sep 17 00:00:00 2001 From: Tim Kientzle Date: Wed, 17 Dec 2008 19:05:00 +0000 Subject: [PATCH] Once the test has failed, exit before the segfault. --- lib/libarchive/test/test_compat_gtar.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/libarchive/test/test_compat_gtar.c b/lib/libarchive/test/test_compat_gtar.c index a083855418e..bf9817bc5a6 100644 --- a/lib/libarchive/test/test_compat_gtar.c +++ b/lib/libarchive/test/test_compat_gtar.c @@ -43,6 +43,7 @@ test_compat_gtar_1(void) char name[] = "test_compat_gtar_1.tgz"; struct archive_entry *ae; struct archive *a; + int r; assert((a = archive_read_new()) != NULL); assertEqualIntA(a, ARCHIVE_OK, archive_read_support_compression_all(a)); @@ -51,7 +52,11 @@ test_compat_gtar_1(void) assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, name, 10240)); /* Read first entry. */ - assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_OK, r = archive_read_next_header(a, &ae)); + if (r != ARCHIVE_OK) { + archive_read_finish(a); + return; + } assertEqualString( "12345678901234567890123456789012345678901234567890" "12345678901234567890123456789012345678901234567890" @@ -66,7 +71,11 @@ test_compat_gtar_1(void) assertEqualInt(0100644, archive_entry_mode(ae)); /* Read second entry. */ - assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_OK, r = archive_read_next_header(a, &ae)); + if (r != ARCHIVE_OK) { + archive_read_finish(a); + return; + } assertEqualString( "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij" "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij"