On Mon, Mar 27, 2017 at 12:46:40 +0200, Martin Kletzander wrote: > STREQ_NULLABLE returns true if both parameters are NULL. And that's > not what we want here. We just want to skop comparing source nodes s/skop/skip/ > that don't have that info set. The function wouldn't make much sense > with nodeName == NULL, so we don't need to check that. Moreover, the > function's declaration uses ATTRIBUDE_NONNULL for nodeName, which not s/ATTRIBUDE_NONNULL/ATTRIBUTE_NONNULL/ > only means that function expects the parameter not to be NULL, but > actually tells the compiler that it can optimize out the NULL checks. > That way it could end up calling strcmp on NULL (either nodeformat or > nodebacking). GCC figures this out if libvirt is compiled with > lv_cv_static_analysis=yes, unfortunately not everyone uses that. > > Signed-off-by: Martin Kletzander <mkletzan@xxxxxxxxxx> > --- > src/util/virstoragefile.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c > index 3bcb69bf6206..0ac707962102 100644 > --- a/src/util/virstoragefile.c > +++ b/src/util/virstoragefile.c > @@ -3809,8 +3809,8 @@ virStorageSourceFindByNodeName(virStorageSourcePtr top, > *index = 0; > > for (tmp = top; tmp; tmp = tmp->backingStore) { > - if (STREQ_NULLABLE(tmp->nodeformat, nodeName) || > - STREQ_NULLABLE(tmp->nodebacking, nodeName)) > + if ((tmp->nodeformat && STREQ(tmp->nodeformat, nodeName)) || > + (tmp->nodebacking && STREQ(tmp->nodebacking, nodeName))) > return tmp; > ACK
Attachment:
signature.asc
Description: PGP signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list