If a domain object is being removed and looked up concurrently we must
ensure we unlock the object before unreferencing it, since the latter
might free the object.
Signed-off-by: Michael Chapman <mike(a)very.puzzling.org>
---
src/conf/domain_conf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index cc8616b..ce0e173 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1068,9 +1068,9 @@ virDomainObjListFindByUUIDInternal(virDomainObjListPtr doms,
if (obj) {
virObjectLock(obj);
if (obj->removing) {
+ virObjectUnlock(obj);
if (ref)
virObjectUnref(obj);
- virObjectUnlock(obj);
obj = NULL;
}
}
--
2.1.0