Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/dtable.cc2
-rw-r--r--winsup/cygwin/syscalls.cc2
-rw-r--r--winsup/cygwin/winsup.h1
4 files changed, 8 insertions, 3 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 96471a06d..89eb529cd 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,9 @@
+2012-12-31 Christopher Faylor <me.cygwin2012@cgf.cx>
+
+ * dtable.cc (dtable::dup3): Fix bounds checking for valid newfd.
+ * syscalls.cc (dup2): Ditto.
+ * winsup.h (events_terminate): Delete obsolete function declaration.
+
2012-12-28 Christopher Faylor <me.cygwin2012@cgf.cx>
* DevNotes: Add entry cgf-000019.
diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc
index 2a9f8b078..0b6cee376 100644
--- a/winsup/cygwin/dtable.cc
+++ b/winsup/cygwin/dtable.cc
@@ -728,7 +728,7 @@ dtable::dup3 (int oldfd, int newfd, int flags)
set_errno (EBADF);
goto done;
}
- if (newfd < 0)
+ if (newfd >= OPEN_MAX_MAX || newfd < 0)
{
syscall_printf ("new fd out of bounds: %d", newfd);
set_errno (EBADF);
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 43ecf3a0f..fe89f8493 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -142,7 +142,7 @@ extern "C" int
dup2 (int oldfd, int newfd)
{
int res;
- if (newfd >= OPEN_MAX_MAX)
+ if (newfd >= OPEN_MAX_MAX || newfd < 0)
{
set_errno (EBADF);
res = -1;
diff --git a/winsup/cygwin/winsup.h b/winsup/cygwin/winsup.h
index 0638b44f2..21082c6e3 100644
--- a/winsup/cygwin/winsup.h
+++ b/winsup/cygwin/winsup.h
@@ -185,7 +185,6 @@ void uinfo_init ();
/* various events */
void events_init ();
-void events_terminate ();
void __stdcall close_all_files (bool = false);