dup2: fix off-by-one crash

* dtable.cc (dup3): Fix off-by-one.
(find_unused_handle): Reduce time spent expanding during dup.
* syscalls.cc (setdtablesize): Report error on invalid value.
This commit is contained in:
Eric Blake
2013-11-23 13:51:53 +00:00
parent 7a5be33eb5
commit 3a4ce7315f
3 changed files with 15 additions and 2 deletions

View File

@@ -2578,6 +2578,12 @@ system (const char *cmdstring)
extern "C" int
setdtablesize (int size)
{
if (size < 0)
{
set_errno (EINVAL);
return -1;
}
if (size <= (int)cygheap->fdtab.size || cygheap->fdtab.extend (size - cygheap->fdtab.size))
return 0;