The lock should be released. Signed-off-by: Yi Li <yili@xxxxxxxxxxx> --- src/conf/virstorageobj.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index 13b75b648d..9f24ae67ca 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -2077,8 +2077,10 @@ virStoragePoolObjListExport(virConnectPtr conn, virObjectRWLockRead(poolobjs); - if (pools && VIR_ALLOC_N(data.pools, virHashSize(poolobjs->objs) + 1) < 0) - goto error; + if (pools && VIR_ALLOC_N(data.pools, virHashSize(poolobjs->objs) + 1) < 0) { + virObjectRWUnlock(poolobjs); + return -1; + } virHashForEach(poolobjs->objs, virStoragePoolObjListExportCallback, &data); virObjectRWUnlock(poolobjs); -- 2.25.3