]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
test_read_append_filter_wrong_program: check return value of freopen()
authorMartin Matuska <martin@matuska.org>
Fri, 14 Oct 2016 13:25:13 +0000 (15:25 +0200)
committerMartin Matuska <martin@matuska.org>
Fri, 14 Oct 2016 13:32:49 +0000 (15:32 +0200)
libarchive/test/test_read_set_format.c

index d333269c2ee9832ce2133e2c7366a248be47e212..2ebc873d737948957a06d5f37282b02a75ca7a6f 100644 (file)
@@ -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");
 }