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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to