John Baldwin c55d7e868a File descriptors are an int, but our stdio FILE object uses a short to hold
them.  Thus, any fd whose value is greater than SHRT_MAX is handled
incorrectly (the short value is sign-extended when converted to an int).
An unpleasant side effect is that if fopen() opens a file and gets a
backing fd that is greater than SHRT_MAX, fclose() will fail and the file
descriptor will be leaked.  Better handle this by fixing fopen(), fdopen(),
and freopen() to fail attempts to use a fd greater than SHRT_MAX with
EMFILE.

At some point in the future we should look at expanding the file descriptor
in FILE to an int, but that is a bit complicated due to ABI issues.

MFC after:	1 week
Discussed on:	arch
Reviewed by:	wollman
2008-02-27 19:02:02 +00:00
..
2007-12-02 22:21:30 +00:00
2006-09-17 21:27:35 +00:00
2007-06-10 19:06:09 +00:00
2008-02-06 23:25:29 +00:00
2007-12-21 12:00:16 +00:00
2007-10-16 02:10:44 +00:00
2008-02-03 06:04:38 +00:00
2007-04-09 01:45:30 +00:00
2006-03-23 14:09:21 +00:00