bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

MacOS strerror_r [was: [PATCH 2/2] strerror: work around FreeBSD bug]


From: Eric Blake
Subject: MacOS strerror_r [was: [PATCH 2/2] strerror: work around FreeBSD bug]
Date: Wed, 08 Jun 2011 05:38:27 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc14 Lightning/1.0b3pre Mnenhy/0.8.3 Thunderbird/3.1.10

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   address@hidden    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]