On 07/09/2012 10:07 AM, Markus Armbruster wrote: >>> This is an unconditional use of fd_type[0]. If floppy == NULL, this is >>> dereferencing an uninitialized value. >>> >>> I'm not sure why the explicit initialization was removed... > > Brain fart on my part, sorry. The old loop assigns only if the drive > exists. The new loop assigns unconditionally. Except the whole loop is > still conditional. > > Testing can't flag this, because floppy is never null. > >> Looks broken indeed. I just wonder why my gcc (or the buildbots) didn't >> complain. > > Me too. Looks like I should upgrade to a more recent gcc. It's probably not the version of the gcc you used, but whether or not your CFLAGS include -O2. Gcc has the (IMO very annoying) limitation that uninitialized-use analysis can only be performed if you are also doing optimization. You have to use a tool like clang or Coverity if you want more reliable uninitialized-use analysis even while building -O0 debug images. -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org