diff options
-rw-r--r-- | winsup/cygwin/ChangeLog | 4 | ||||
-rw-r--r-- | winsup/cygwin/dtable.cc | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index c68ced329..d8d60b863 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,9 @@ 2013-12-01 Christopher Faylor <me.cygwin2013@cgf.cx> + * dtable.cc (dtable::find_unused_handle): Break out of the right loop. + +2013-12-01 Christopher Faylor <me.cygwin2013@cgf.cx> + * dtable.cc (dtable::find_unused_handle): Fix off-by-one error. Always exit through the bottom. (cygwin_attach_handle_to_fd): Make sure that fd tab is locked for the diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc index 485e79c5d..e97966b31 100644 --- a/winsup/cygwin/dtable.cc +++ b/winsup/cygwin/dtable.cc @@ -230,14 +230,14 @@ dtable::find_unused_handle (size_t start) do { for (size_t i = start; i < size; i++) - /* See if open -- no need for overhead of not_open */ if (fds[i] == NULL) { res = (int) i; - break; + goto out; } } while (extend (extendby)); +out: return res; } |