From: Nikolay Shirokovskiy <nshirokovskiy(a)virtuozzo.com>
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 since it mgmt of the @srv would
be assumed to be handled by the Hash Table.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
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 1b7fd86b3a..0d5e999ef4 100644
--- a/src/locking/lock_daemon.c
+++ b/src/locking/lock_daemon.c
@@ -278,6 +278,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 e3b9390af2..8c21414897 100644
--- a/src/rpc/virnetdaemon.c
+++ b/src/rpc/virnetdaemon.c
@@ -312,6 +312,7 @@ virNetDaemonAddServerPostExec(virNetDaemonPtr dmn,
if (virHashAddEntry(dmn->servers, serverName, srv) < 0)
goto error;
+ virObjectRef(srv);
virJSONValueFree(object);
virObjectUnlock(dmn);
--
2.13.6