:> The are dozens of libc routines which call malloc internally and return
:> allocated storage. strdup(), opendir(), fopen(), setvbuf(), asprintf(),
:> and so forth. Dozens. And while we might check some of these for NULL,
:> we don't check them all, and the ones we do check we tend to conclude
:> a failure other then a memory failure. We would assume that the directory
:> or file does not exist, for example. How many programmers check errno
:> after such a failure? Very few. How many programmers bother to even
:> *clear* errno before making these calls (since some system calls do not
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:We're not supposed to have to clear errno unless we have to explicitly
:test if it has changed. We're not supposed to clear it before any system
:call which could possibly fail and set errno.
:
:> set errno if it already non-zero). Virtually nobody.
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:Erm... WTF?!?! If so, why the HELL are we doing that?!?
No, wait, I got that wrong I think.
Oh yah, I remember now. Hmm. How odd. I came across a case where
read() could return -1 and not set errno properly if errno
was already set, but a perusal of the kernel code seems to indicate
that this can't happen. Very weird.
-Matt
Matthew Dillon
<[EMAIL PROTECTED]>
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message