qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 4/6] qcow2-cluster: Fix memory leak in copy_s


From: Kevin Wolf
Subject: Re: [Qemu-devel] [PATCH v2 4/6] qcow2-cluster: Fix memory leak in copy_sectors
Date: Wed, 28 May 2014 15:41:52 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

Am 28.05.2014 um 15:21 hat address@hidden geschrieben:
> From: Gonglei <address@hidden>
> 
> Spotted by Coverity:
> 
> (3) Event alloc_fn:  Storage is returned from allocation function 
> "qemu_blockalign(BlockDriverState *, size_t)". [details]
> (4) Event var_assign:  Assigning: "iov.iov_base" = storage returned from 
> "qemu_blockalign(bs, iov.iov_len)".
> Also see events:  [leaked_storage]
> 
> 375         iov.iov_base = qemu_blockalign(bs, iov.iov_len);
> 376
> 377         qemu_iovec_init_external(&qiov, &iov, 1);
> 378
> 379         BLKDBG_EVENT(bs->file, BLKDBG_COW_READ);
> 380
> (5) Event cond_true:  Condition "!bs->drv", taking true branch
> 
> 381         if (!bs->drv) {
> (6) Event leaked_storage:  Variable "iov" going out of scope leaks the 
> storage "iov.iov_base" points to.
> Also see events:  [alloc_fn][var_assign]
> 
> 382             return -ENOMEDIUM;
> 383         }
> 
> Signed-off-by: Gonglei <address@hidden>
> Reviewed-by: Stefan Hajnoczi <address@hidden>
> ---
>  block/qcow2-cluster.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c
> index 76d2bcf..4208dc0 100644
> --- a/block/qcow2-cluster.c
> +++ b/block/qcow2-cluster.c
> @@ -379,7 +379,8 @@ static int coroutine_fn copy_sectors(BlockDriverState *bs,
>      BLKDBG_EVENT(bs->file, BLKDBG_COW_READ);
>  
>      if (!bs->drv) {
> -        return -ENOMEDIUM;
> +        ret = -ENOMEDIUM;
> +        goto out;
>      }
>  
>      /* Call .bdrv_co_readv() directly instead of using the public block-layer

This is a duplicate of "[PATCH] qcow2: Fix memory leak in COW error
path", which is already in Stefan's current pull request.

Kevin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]