Commit cb72110d authored by Jason Rumney's avatar Jason Rumney

(sys_pipe): Protect against file descriptor overflow.

parent d3703de3
......@@ -3450,11 +3450,22 @@ sys_pipe (int * phandles)
if (rc == 0)
{
flags = FILE_PIPE | FILE_READ | FILE_BINARY;
fd_info[phandles[0]].flags = flags;
/* Protect against overflow, since Windows can open more handles than
our fd_info array has room for. */
if (phandles[0] >= MAXDESC || phandles[1] >= MAXDESC)
{
_close (phandles[0]);
_close (phandles[1]);
rc = -1;
}
else
{
flags = FILE_PIPE | FILE_READ | FILE_BINARY;
fd_info[phandles[0]].flags = flags;
flags = FILE_PIPE | FILE_WRITE | FILE_BINARY;
fd_info[phandles[1]].flags = flags;
flags = FILE_PIPE | FILE_WRITE | FILE_BINARY;
fd_info[phandles[1]].flags = flags;
}
}
return rc;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment