Fix possible memory leak in phyp_driver.c

There could be a memory leak caused by "managed_system" string, if any
error occurs before "managed_system" is assigned into
"phyp_driver->managed_system". The "managed_system" string wouldn't be
freed at all. The better way is to free the "managed_system" instead
of the one assigned in the "phyp_driver".

This has been found by coverity.

Pointed out by John, that the "phyp_driver->xmlopt" needs to be
unreferenced as well.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Signed-off-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
Pavel Hrdina 2014-01-13 14:48:40 +01:00
parent 7ed02a0003
commit 788e6cb25b

View File

@ -1153,9 +1153,11 @@ phypConnectOpen(virConnectPtr conn,
return VIR_DRV_OPEN_SUCCESS; return VIR_DRV_OPEN_SUCCESS;
failure: failure:
VIR_FREE(managed_system);
if (phyp_driver != NULL) { if (phyp_driver != NULL) {
virObjectUnref(phyp_driver->caps); virObjectUnref(phyp_driver->caps);
VIR_FREE(phyp_driver->managed_system); virObjectUnref(phyp_driver->xmlopt);
VIR_FREE(phyp_driver); VIR_FREE(phyp_driver);
} }