On 06/07/2011 09:50 PM, Eric Blake wrote: >> strerror(0) misbehavior. Hmm, while FreeBSD was setting EINVAL to make >> the failure explicit, MacOS is claiming success while still outputting >> "Unknown error: 0". I'll fix that with a strstr() test in the .m4 files. > > Oh hideous. > > strerror(0) => Unknown error: 0 > strerror_r(0,buf,len) => Undefined error: 0 > strerror(-1) => Unknown error: -1 > strerror_r(-1,buf,len) => Unknown error: -1 > > I don't think POSIX requires the same strings for the two > implementations, but MacOS is the first implementation where the strings > are intentionally different, but only for a single errnum value. Fix > coming up soon.
I fixed that, and found the next bug: $ ./foo 1 23 Operation not permitte(34) $ ./foo 1 24 Operation not permitted(0) Ouch. MacOS is _silently_ writing a NUL byte beyond the array bounds, if the input buffer size is exactly equal to strlen(message size). -- Eric Blake ebl...@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature