[libvirt] [PATCH] Remove a completely bogus reference increment in the Xen driver.

xenUnifiedDomainEventRegister() calls out to virDomainEventCallbackListAdd(), which increments the reference count on the connection. That is fine, but then xenUnifiedDomainEventRegister() increments the usage count again, leading to a usage count leak. Remove the increment in the xen register, and the UnrefConnect in the xen unregister. Signed-off-by: Chris Lalancette <clalance@redhat.com> --- src/xen/xen_driver.c | 6 ------ 1 files changed, 0 insertions(+), 6 deletions(-) diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 5273a11..f2744b0 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -1502,9 +1502,6 @@ xenUnifiedDomainEventRegister (virConnectPtr conn, ret = virDomainEventCallbackListAdd(conn, priv->domainEventCallbacks, callback, opaque, freefunc); - if (ret == 0) - conn->refs++; - xenUnifiedUnlock(priv); return (ret); } @@ -1530,9 +1527,6 @@ xenUnifiedDomainEventDeregister (virConnectPtr conn, ret = virDomainEventCallbackListRemove(conn, priv->domainEventCallbacks, callback); - if (ret == 0) - virUnrefConnect(conn); - xenUnifiedUnlock(priv); return ret; } -- 1.6.0.6

On 10/23/2009 07:01 AM, Chris Lalancette wrote:
xenUnifiedDomainEventRegister() calls out to virDomainEventCallbackListAdd(), which increments the reference count on the connection. That is fine, but then xenUnifiedDomainEventRegister() increments the usage count again, leading to a usage count leak. Remove the increment in the xen register, and the UnrefConnect in the xen unregister.
Signed-off-by: Chris Lalancette <clalance@redhat.com> --- src/xen/xen_driver.c | 6 ------ 1 files changed, 0 insertions(+), 6 deletions(-)
diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 5273a11..f2744b0 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -1502,9 +1502,6 @@ xenUnifiedDomainEventRegister (virConnectPtr conn, ret = virDomainEventCallbackListAdd(conn, priv->domainEventCallbacks, callback, opaque, freefunc);
- if (ret == 0) - conn->refs++; - xenUnifiedUnlock(priv); return (ret); } @@ -1530,9 +1527,6 @@ xenUnifiedDomainEventDeregister (virConnectPtr conn, ret = virDomainEventCallbackListRemove(conn, priv->domainEventCallbacks, callback);
- if (ret == 0) - virUnrefConnect(conn); - xenUnifiedUnlock(priv); return ret; }
ACK. - Cole

Cole Robinson wrote:
On 10/23/2009 07:01 AM, Chris Lalancette wrote:
xenUnifiedDomainEventRegister() calls out to virDomainEventCallbackListAdd(), which increments the reference count on the connection. That is fine, but then xenUnifiedDomainEventRegister() increments the usage count again, leading to a usage count leak. Remove the increment in the xen register, and the UnrefConnect in the xen unregister.
Signed-off-by: Chris Lalancette <clalance@redhat.com> --- src/xen/xen_driver.c | 6 ------ 1 files changed, 0 insertions(+), 6 deletions(-)
diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 5273a11..f2744b0 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -1502,9 +1502,6 @@ xenUnifiedDomainEventRegister (virConnectPtr conn, ret = virDomainEventCallbackListAdd(conn, priv->domainEventCallbacks, callback, opaque, freefunc);
- if (ret == 0) - conn->refs++; - xenUnifiedUnlock(priv); return (ret); } @@ -1530,9 +1527,6 @@ xenUnifiedDomainEventDeregister (virConnectPtr conn, ret = virDomainEventCallbackListRemove(conn, priv->domainEventCallbacks, callback);
- if (ret == 0) - virUnrefConnect(conn); - xenUnifiedUnlock(priv); return ret; }
ACK.
Thanks, committed. -- Chris Lalancette
participants (2)
-
Chris Lalancette
-
Cole Robinson