On 07/02/2015 09:21 AM, Alberto Garcia wrote: > >>> 3) I don't think it's necessary to set to NULL the pointers in >>> s->bs[i] when i >= num_children. There's no way to access those >>> pointers anyway. Same for the ' s->bs[s->num_children] = NULL; ' bit >>> in quorum_del_child(). I also think that using memset() for setting >>> NULL pointers is not portable, although QEMU is already doing this in >>> a few places. >> >> OK, will remove it in the next version. Just a question: why is using >> memset() for setting NULL pointers is not prtable? > > The standard allows for null pointers to be internally represented by > nonzero bit patterns. However I'm not aware of any system that we > support that does that. > > http://c-faq.com/null/confusion4.html > http://c-faq.com/null/machexamp.html
What's more, POSIX has very recently taken the stance that memset() to 0 will work on all POSIX systems, even if someone is insane enough to use a non-zero bit pattern for NULL on modern hardware: http://austingroupbugs.net/view.php?id=940 -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature