From 98739726e2765867341ca3cae4631b22c8cf8143 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Sat, 10 Jun 2006 18:24:32 +0000 Subject: [PATCH] * mingw-hdep.c (gdb_select): Always check for NULL fd sets before calling FD_ISSET. Correct check for exceptfds which previously tested writefds. --- gdb/ChangeLog | 6 ++++++ gdb/mingw-hdep.c | 15 ++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 75a39ab..3ddea3c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2006-06-10 Daniel Jacobowitz + + * mingw-hdep.c (gdb_select): Always check for NULL fd sets + before calling FD_ISSET. Correct check for exceptfds which + previously tested writefds. + 2006-06-09 Daniel Jacobowitz Julian Brown diff --git a/gdb/mingw-hdep.c b/gdb/mingw-hdep.c index bb0f50a..2b92a1c 100644 --- a/gdb/mingw-hdep.c +++ b/gdb/mingw-hdep.c @@ -105,8 +105,8 @@ gdb_select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, if something starts using it. */ gdb_assert (!writefds || !FD_ISSET (fd, writefds)); - if (!FD_ISSET (fd, readfds) - && !FD_ISSET (fd, exceptfds)) + if ((!readfds || !FD_ISSET (fd, readfds)) + && (!exceptfds || !FD_ISSET (fd, exceptfds))) continue; h = (HANDLE) _get_osfhandle (fd); @@ -124,13 +124,13 @@ gdb_select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, except = never_handle; } - if (FD_ISSET (fd, readfds)) + if (readfds && FD_ISSET (fd, readfds)) { gdb_assert (num_handles < MAXIMUM_WAIT_OBJECTS); handles[num_handles++] = read; } - if (FD_ISSET (fd, exceptfds)) + if (exceptfds && FD_ISSET (fd, exceptfds)) { gdb_assert (num_handles < MAXIMUM_WAIT_OBJECTS); handles[num_handles++] = except; @@ -169,10 +169,11 @@ gdb_select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, HANDLE fd_h; struct serial *scb; - if (!FD_ISSET (fd, readfds) && !FD_ISSET (fd, writefds)) + if ((!readfds || !FD_ISSET (fd, readfds)) + && (!exceptfds || !FD_ISSET (fd, exceptfds))) continue; - if (FD_ISSET (fd, readfds)) + if (readfds && FD_ISSET (fd, readfds)) { fd_h = handles[indx++]; /* This handle might be ready, even though it wasn't the handle @@ -183,7 +184,7 @@ gdb_select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, num_ready++; } - if (FD_ISSET (fd, exceptfds)) + if (exceptfds && FD_ISSET (fd, exceptfds)) { fd_h = handles[indx++]; /* This handle might be ready, even though it wasn't the handle -- 2.7.4