[libvirt] [PATCH 14/14] hyperv: Address resource leak found by Coverityo

Matthias Bolte matthias.bolte at googlemail.com
Thu Jan 10 21:58:28 UTC 2013


2013/1/10 Matthias Bolte <matthias.bolte at googlemail.com>:
> 2013/1/9 John Ferlan <jferlan at redhat.com>:
>> Because result was used to determine whether or not to free 'priv'
>> resources Coverity tagged the code as having a resource leak. This
>> change addresses that concern.
>> ---
>>  src/hyperv/hyperv_driver.c | 10 +++++-----
>>  1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c
>> index 601a85a..e69a232 100644
>> --- a/src/hyperv/hyperv_driver.c
>> +++ b/src/hyperv/hyperv_driver.c
>> @@ -121,6 +121,7 @@ hypervOpen(virConnectPtr conn, virConnectAuthPtr auth, unsigned int flags)
>>          virReportOOMError();
>>          goto cleanup;
>>      }
>> +    conn->privateData = priv;
>>
>>      if (hypervParseUri(&priv->parsedUri, conn->uri) < 0) {
>>          goto cleanup;
>> @@ -199,18 +200,17 @@ hypervOpen(virConnectPtr conn, virConnectAuthPtr auth, unsigned int flags)
>>          goto cleanup;
>>      }
>>
>> -    conn->privateData = priv;
>> -
>>      result = VIR_DRV_OPEN_SUCCESS;
>>
>>    cleanup:
>> -    if (result == VIR_DRV_OPEN_ERROR) {
>> -        hypervFreePrivate(&priv);
>> -    }
>> +    if (result == VIR_DRV_OPEN_ERROR)
>> +        conn->privateData = NULL;
>>
>>      VIR_FREE(username);
>>      VIR_FREE(password);
>>      hypervFreeObject(priv, (hypervObject *)computerSystem);
>> +    if (priv && !conn->privateData)
>> +        hypervFreePrivate(&priv);
>>
>>      return result;
>>  }
>
> The same comment as for the ESX driver in this series applies here.
>
> I'll come up with a patch for this later today.

And here it is:

https://www.redhat.com/archives/libvir-list/2013-January/msg00658.html

-- 
Matthias Bolte
http://photron.blogspot.com




More information about the libvir-list mailing list