jhb 2008-02-27 19:02:02 UTC FreeBSD src repository
Modified files: lib/libc/stdio fdopen.c fopen.c freopen.c Log: 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 Revision Changes Path 1.9 +12 -0 src/lib/libc/stdio/fdopen.c 1.12 +13 -0 src/lib/libc/stdio/fopen.c 1.19 +14 -0 src/lib/libc/stdio/freopen.c _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "[EMAIL PROTECTED]"