2013/1/10 Matthias Bolte <matthias.bolte(a)googlemail.com>:
2013/1/9 John Ferlan <jferlan(a)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