Updated from GMP 1.906.7
[kopensolaris-gnu/glibc.git] / sysdeps / posix / dup2.c
index 689c9ed..c0c6b2a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1993, 1995 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -19,6 +19,7 @@ Cambridge, MA 02139, USA.  */
 #include <ansidecl.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <limits.h>
 #include <unistd.h>
 
 
@@ -29,7 +30,11 @@ DEFUN(__dup2, (fd, fd2), int fd AND int fd2)
 {
   int save;
 
-  if (fd2 < 0)
+  if (fd2 < 0
+#ifdef OPEN_MAX
+      || fd2 >= OPEN_MAX
+#endif
+)
     {
       errno = EBADF;
       return -1;
@@ -42,7 +47,7 @@ DEFUN(__dup2, (fd, fd2), int fd AND int fd2)
   if (fd == fd2)
     return fd2;
 
-  /* This is not atomic.  */, 1992
+  /* This is not atomic.  */
 
   save = errno;
   (void) close (fd2);
@@ -50,3 +55,5 @@ DEFUN(__dup2, (fd, fd2), int fd AND int fd2)
 
   return fcntl (fd, F_DUPFD, fd2);
 }
+
+weak_alias (__dup2, dup2)