From e41f43a1a675ee6d0f21f2ab611c97ffe9c22088 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Fri, 21 Aug 2009 21:19:45 +0000 Subject: * fcntl.cc (fcntl64): Detect negative fd as error. --- winsup/cygwin/fcntl.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/fcntl.cc') diff --git a/winsup/cygwin/fcntl.cc b/winsup/cygwin/fcntl.cc index 442686268..bb41f05c5 100644 --- a/winsup/cygwin/fcntl.cc +++ b/winsup/cygwin/fcntl.cc @@ -40,7 +40,13 @@ fcntl64 (int fd, int cmd, ...) switch (cmd) { case F_DUPFD: - res = dup2 (fd, cygheap_fdnew (((int) arg) - 1)); + if ((int) arg >= 0) + res = dup2 (fd, cygheap_fdnew (((int) arg) - 1)); + else + { + set_errno (EINVAL); + res = -1; + } break; case F_GETLK: case F_SETLK: -- cgit v1.2.3