On 5/7/20, Peter Krempa <pkrempa(a)redhat.com> wrote:
On Thu, May 07, 2020 at 18:48:55 +0800, Yi Li wrote:
> The lock should be released.
>
> Signed-off-by: Yi Li <yili(a)winhong.com>
> ---
> 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;
> + }
In this instance, I'd prefer if VIR_ALLOC_N is replaced by g_new0 which
will not fail and thus the unlock will not be necessary as there will be
no cleanup path.
Thanks, i will redo it.