* opncls.c (bfd_fdopenr): Don't set bfd_error unconditionally.
authorAlan Modra <amodra@gmail.com>
Wed, 8 Jun 2005 03:51:32 +0000 (03:51 +0000)
committerAlan Modra <amodra@gmail.com>
Wed, 8 Jun 2005 03:51:32 +0000 (03:51 +0000)
bfd/ChangeLog
bfd/opncls.c

index 6b8388f..58f3b91 100644 (file)
@@ -1,6 +1,7 @@
 2005-06-08  Alan Modra  <amodra@bigpond.net.au>
 
        * opncls.c (bfd_fopen): Don't set bfd_error unconditionally.
+       (bfd_fdopenr): Same.
 
 2005-06-07  Mark Mitchell  <mark@codesourcery.com>
 
index 112401a..df2cf6d 100644 (file)
@@ -268,13 +268,15 @@ bfd_fdopenr (const char *filename, const char *target, int fd)
   int fdflags;
 #endif
 
-  bfd_set_error (bfd_error_system_call);
 #if ! defined(HAVE_FCNTL) || ! defined(F_GETFL)
   mode = FOPEN_RUB; /* Assume full access.  */
 #else
   fdflags = fcntl (fd, F_GETFL, NULL);
   if (fdflags == -1)
-    return NULL;
+    {
+      bfd_set_error (bfd_error_system_call);
+      return NULL;
+    }
 
   /* (O_ACCMODE) parens are to avoid Ultrix header file bug.  */
   switch (fdflags & (O_ACCMODE))