[libvirt] [PATCH v2 2/2] virtlogd: add missing netserver refcount increment on reload

Nikolay Shirokovskiy nshirokovskiy at virtuozzo.com
Tue Oct 24 09:52:04 UTC 2017


After virNetDaemonAddServerPostExec call in virtlogd we should have
netserver refcount set to 2. One goes to netdaemon servers hashtable
and one goes to virtlogd own reference to netserver. Let's add
missing increment in virNetDaemonAddServerPostExec itself while holding
daemon lock.

We also have to unref new extra ref after virtlockd call to virNetDaemonAddServerPostExec.
---
 src/locking/lock_daemon.c | 1 +
 src/rpc/virnetdaemon.c    | 1 +
 2 files changed, 2 insertions(+)

diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c
index fe3eaf9..41a06b2 100644
--- a/src/locking/lock_daemon.c
+++ b/src/locking/lock_daemon.c
@@ -275,6 +275,7 @@ virLockDaemonNewPostExecRestart(virJSONValuePtr object, bool privileged)
                                               virLockDaemonClientFree,
                                               (void*)(intptr_t)(privileged ? 0x1 : 0x0))))
         goto error;
+    virObjectUnref(srv);
 
     return lockd;
 
diff --git a/src/rpc/virnetdaemon.c b/src/rpc/virnetdaemon.c
index c05df68..8dc042b 100644
--- a/src/rpc/virnetdaemon.c
+++ b/src/rpc/virnetdaemon.c
@@ -313,6 +313,7 @@ virNetDaemonAddServerPostExec(virNetDaemonPtr dmn,
 
     if (virHashAddEntry(dmn->servers, serverName, srv) < 0)
         goto error;
+    virObjectRef(srv);
 
     virJSONValueFree(object);
     virObjectUnlock(dmn);
-- 
1.8.3.1




More information about the libvir-list mailing list