[libvirt] [PATCH 0/2] vz: fix two handle leaks

Maxim Nestratov (2): vz: fix handle leak in prlsdkHandleVmStateEvent vz: fix event handle leak in prlsdkHandlePerfEvent src/vz/vz_sdk.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -- 2.4.11

Every successful call of PrlEvent_GetParamByName allocates a handle, which has to be freed. Signed-off-by: Maxim Nestratov <mnestratov@virtuozzo.com> --- src/vz/vz_sdk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 727b572..ec954dd 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -2114,6 +2114,7 @@ prlsdkHandleVmStateEvent(vzDriverPtr driver, prlsdkSendEvent(driver, dom, lvEventType, lvEventTypeDetails); cleanup: + PrlHandle_Free(eventParam); virObjectUnlock(dom); return; } -- 2.4.11

On Wed, Feb 08, 2017 at 06:28:33PM +0300, Maxim Nestratov wrote:
Every successful call of PrlEvent_GetParamByName allocates a handle, which has to be freed.
Signed-off-by: Maxim Nestratov <mnestratov@virtuozzo.com> --- src/vz/vz_sdk.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 727b572..ec954dd 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -2114,6 +2114,7 @@ prlsdkHandleVmStateEvent(vzDriverPtr driver, prlsdkSendEvent(driver, dom, lvEventType, lvEventTypeDetails);
cleanup: + PrlHandle_Free(eventParam); virObjectUnlock(dom); return; }
ACK Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|

When we happen to lose a domain but still get a performance event for it, we should also free the event handle. Signed-off-by: Maxim Nestratov <mnestratov@virtuozzo.com> --- src/vz/vz_sdk.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index ec954dd..614dca1 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -2197,8 +2197,10 @@ prlsdkHandlePerfEvent(vzDriverPtr driver, virDomainObjPtr dom = NULL; vzDomObjPtr privdom = NULL; - if (!(dom = virDomainObjListFindByUUID(driver->domains, uuid))) + if (!(dom = virDomainObjListFindByUUID(driver->domains, uuid))) { + PrlHandle_Free(event); return; + } privdom = dom->privateData; PrlHandle_Free(privdom->stats); -- 2.4.11

On Wed, Feb 08, 2017 at 06:28:34PM +0300, Maxim Nestratov wrote:
When we happen to lose a domain but still get a performance event for it, we should also free the event handle.
Signed-off-by: Maxim Nestratov <mnestratov@virtuozzo.com> --- src/vz/vz_sdk.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index ec954dd..614dca1 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -2197,8 +2197,10 @@ prlsdkHandlePerfEvent(vzDriverPtr driver, virDomainObjPtr dom = NULL; vzDomObjPtr privdom = NULL;
- if (!(dom = virDomainObjListFindByUUID(driver->domains, uuid))) + if (!(dom = virDomainObjListFindByUUID(driver->domains, uuid))) { + PrlHandle_Free(event); return; + }
privdom = dom->privateData; PrlHandle_Free(privdom->stats);
ACK Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|

08-Feb-17 19:07, Daniel P. Berrange пишет:
On Wed, Feb 08, 2017 at 06:28:34PM +0300, Maxim Nestratov wrote:
When we happen to lose a domain but still get a performance event for it, we should also free the event handle.
Signed-off-by: Maxim Nestratov <mnestratov@virtuozzo.com> --- src/vz/vz_sdk.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index ec954dd..614dca1 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -2197,8 +2197,10 @@ prlsdkHandlePerfEvent(vzDriverPtr driver, virDomainObjPtr dom = NULL; vzDomObjPtr privdom = NULL;
- if (!(dom = virDomainObjListFindByUUID(driver->domains, uuid))) + if (!(dom = virDomainObjListFindByUUID(driver->domains, uuid))) { + PrlHandle_Free(event); return; + }
privdom = dom->privateData; PrlHandle_Free(privdom->stats); ACK
Regards, Daniel
Pushed the series. Thanks, Maxim
participants (2)
-
Daniel P. Berrange
-
Maxim Nestratov