
On Wed, May 18, 2011 at 11:27:28AM -0600, Eric Blake wrote:
[adding bug-gnulib]
On 05/18/2011 11:07 AM, Daniel P. Berrange wrote:
strerror_r() is free to not set any error string, if the passed errno is not valid. It may, however, still return a pointer to the original passed in buffer. This resulting in random garbage from the stack being present as the error string.
Indeed. However, I'm inclined to NACK the libvirt patch, because:
Right now, gnulib guarantees that strerror() always gives a useful result (non-empty string for all errno values, even though POSIX allows an empty string), but the strerror_r-posix module is not making those same guarantees.
Therefore, I argue that this is a bug in gnulib. We should be changing the strerror_r-posix module to guarantee sane behavior, rather than just bare-minimum compliance, even if that means replacing strerror_r on a few more platforms.
Yeah, if gnulib wants to fix this, that's fine with me. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|