mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-23 20:02:21 +00:00
Fix build with GCC's static analysis
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 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 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. Caused by cbc6d53513568c9c9613b3eaae1c8a8230fd6aab. Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
parent
91c3d430c9
commit
eec3b255d2
@ -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;
|
||||
|
||||
if (index)
|
||||
|
Loading…
x
Reference in New Issue
Block a user