diff options
author | jhb <jhb@FreeBSD.org> | 2008-02-27 19:02:02 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2008-02-27 19:02:02 +0000 |
commit | 4c65fa8afdeb144b1a2be9476db19538f56c60ba (patch) | |
tree | 636eaa9d47e5f42f8f59cf335161c68af6b7300a /lib/libc/stdlib/strtoull.c | |
parent | 76461e66bc08ee42c8b9bf6eb8b1a6c92b3b9d82 (diff) | |
download | FreeBSD-src-4c65fa8afdeb144b1a2be9476db19538f56c60ba.zip FreeBSD-src-4c65fa8afdeb144b1a2be9476db19538f56c60ba.tar.gz |
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
Diffstat (limited to 'lib/libc/stdlib/strtoull.c')
0 files changed, 0 insertions, 0 deletions