From: Martin Matuska Date: Fri, 14 Oct 2016 13:25:13 +0000 (+0200) Subject: test_read_append_filter_wrong_program: check return value of freopen() X-Git-Tag: v3.2.2~9^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8358d5837c30fd955dc2a9f82742fdc8e3f5b757;p=thirdparty%2Flibarchive.git test_read_append_filter_wrong_program: check return value of freopen() --- diff --git a/libarchive/test/test_read_set_format.c b/libarchive/test/test_read_set_format.c index d333269c2..2ebc873d7 100644 --- a/libarchive/test/test_read_set_format.c +++ b/libarchive/test/test_read_set_format.c @@ -200,6 +200,7 @@ DEFINE_TEST(test_read_append_filter_wrong_program) { struct archive_entry *ae; struct archive *a; + FILE * fp; int fd; fpos_t pos; @@ -215,7 +216,7 @@ DEFINE_TEST(test_read_append_filter_wrong_program) fflush(stderr); fgetpos(stderr, &pos); fd = dup(fileno(stderr)); - freopen("stderr1", "w", stderr); + fp = freopen("stderr1", "w", stderr); assert((a = archive_read_new()) != NULL); assertA(0 == archive_read_set_format(a, ARCHIVE_FORMAT_TAR)); @@ -228,11 +229,13 @@ DEFINE_TEST(test_read_append_filter_wrong_program) assertEqualInt(ARCHIVE_OK, archive_read_free(a)); /* restore stderr */ - fflush(stderr); - dup2(fd, fileno(stderr)); - close(fd); - clearerr(stderr); - fsetpos(stderr, &pos); + if (fp != NULL) { + fflush(stderr); + dup2(fd, fileno(stderr)); + close(fd); + clearerr(stderr); + fsetpos(stderr, &pos); + } assertTextFileContents("bunzip2: (stdin) is not a bzip2 file.\n", "stderr1"); }