[libvirt] [PATCH] Fix build with GCC's static analysis
Martin Kletzander
mkletzan at redhat.com
Mon Mar 27 11:11:54 UTC 2017
On Mon, Mar 27, 2017 at 06:57:10AM -0400, John Ferlan wrote:
>
>
>On 03/27/2017 06:46 AM, 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
>
>stop
>
oh
>> 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
>
>ATTRIBUTE
>
OH
How do I words again?
>> 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 at redhat.com>
>> ---
>> src/util/virstoragefile.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>
>ACK
>
Thanks, will push in a while. I also added the commit ID for back-reference.
>John
>
>> 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;
>>
>> if (index)
>>
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170327/b4a38459/attachment-0001.sig>
More information about the libvir-list
mailing list