[PATCH] node_device: pacify grumpy coverity due to addr override
Boris Fiuczynski
fiuczy at linux.ibm.com
Mon Dec 14 11:02:33 UTC 2020
On 12/11/20 3:55 PM, Michal Privoznik wrote:
> On 12/11/20 3:46 PM, Boris Fiuczynski wrote:
>> On 12/11/20 3:33 PM, Michal Privoznik wrote:
>>> On 12/10/20 6:32 PM, Boris Fiuczynski wrote:
>>>> With commit 09364608b4 node_device: refactor address retrieval of
>>>> node device
>>>> "if-else if" was replaced by "switch".
>>>> The contained break statement now is no longer in context of the for
>>>> loop
>>>> but instead of the switch causing the legitimate grumpiness of
>>>> coverity.
>>>>
>>>> Signed-off-by: Boris Fiuczynski <fiuczy at linux.ibm.com>
>>>> Suggested-by: John Ferlan <jferlan at redhat.com>
>>>> ---
>>>> src/node_device/node_device_driver.c | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/src/node_device/node_device_driver.c
>>>> b/src/node_device/node_device_driver.c
>>>> index e254b49244..da1bc8a545 100644
>>>> --- a/src/node_device/node_device_driver.c
>>>> +++ b/src/node_device/node_device_driver.c
>>>> @@ -637,7 +637,7 @@ nodeDeviceFindAddressByName(const char *name)
>>>> }
>>>> def = virNodeDeviceObjGetDef(dev);
>>>> - for (caps = def->caps; caps != NULL; caps = caps->next) {
>>>> + for (caps = def->caps; caps != NULL && addr == NULL; caps =
>>>> caps->next) {
>>>> switch (caps->data.type) {
>>>> case VIR_NODE_DEV_CAP_PCI_DEV: {
>>>> virPCIDeviceAddress pci_addr = {
>>>>
>>>
>>> Yep, this is a genuine bug. Because those 'break' statements will end
>>> the switch() and not the for() loop. But what I worry is that this
>>> compound check is easy to overlook. So how about explicit:
>>>
>>> if (addr)
>>> break;
>>>
>>> at the end of the loop, after the switch()?
>>>
>>> Either way:
>>>
>>> Reviewed-by: Michal Privoznik <mprivozn at redhat.com>
>>>
>>> Michal
>>>
>>
>> Yes, agree that would make it more obvious.
>> Like this...
>>
>> diff --git a/src/node_device/node_device_driver.c
>> b/src/node_device/node_device_driver.c
>> index e254b49244..51b20848ce 100644
>> --- a/src/node_device/node_device_driver.c
>> +++ b/src/node_device/node_device_driver.c
>> @@ -687,6 +687,9 @@ nodeDeviceFindAddressByName(const char *name)
>> case VIR_NODE_DEV_CAP_LAST:
>> break;
>> }
>> +
>> + if (addr)
>> + break;
>> }
>>
>> virNodeDeviceObjEndAPI(&dev);
>
> Exactly, this is exactly what I meant.
>
>>
>>
>> If you want me to resend the patch please let me know.
>>
>>
>
> No need. The change is trivial and since we have an agreement I'd say do
> the change locally, append my Reviewed-by line and push.
>
> Michal
>
Michal,
since I do not have commit rights I am fine with you doing it.
Thanks.
--
Mit freundlichen Grüßen/Kind regards
Boris Fiuczynski
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Gregor Pillen
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
More information about the libvir-list
mailing list