test-dup2: fix bad assumption
authorEric Blake <ebb9@byu.net>
Thu, 13 Aug 2009 18:11:47 +0000 (12:11 -0600)
committerEric Blake <ebb9@byu.net>
Thu, 13 Aug 2009 19:02:22 +0000 (13:02 -0600)
* tests/test-dup2.c (main): Tolerate leaked fds from environment.
Reported by Peter Breitenlohner <peb@mppmu.mpg.de>.

Signed-off-by: Eric Blake <ebb9@byu.net>
ChangeLog
tests/test-dup2.c

index 960f3cc42c2e63b794181309949b2b096f8cbeae..d6c3670e6e27cecb684792241c446182091864f4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2009-08-13  Eric Blake  <ebb9@byu.net>
 
+       test-dup2: fix bad assumption
+       * tests/test-dup2.c (main): Tolerate leaked fds from environment.
+       Reported by Peter Breitenlohner <peb@mppmu.mpg.de>.
+
        test-version-etc: fix CRLF portability issue
        * tests/test-version-etc.sh: Use tr, not sed, as not all sed
        recognize \r.
index 67f49eff05dd44cfb4f5757cc9b4421c50ff89bc..2009aaa2636b4ddd0483db750accfbbeb83cfa38 100644 (file)
@@ -67,8 +67,12 @@ main ()
   char buffer[1];
   int fd = open (file, O_CREAT | O_RDWR, 0600);
 
-  ASSERT (0 <= fd);
+  /* Assume std descriptors were provided by invoker.  */
+  ASSERT (STDERR_FILENO < fd);
   ASSERT (is_open (fd));
+  /* Ignore any other fd's leaked into this process.  */
+  close (fd + 1);
+  close (fd + 2);
   ASSERT (!is_open (fd + 1));
   ASSERT (!is_open (fd + 2));