The Monday 26 May 2014 à 19:37:10 (+0200), Markus Armbruster wrote :
> Introduced in commit f298d07.  Spotted by Coverity.
> 
> Signed-off-by: Markus Armbruster <arm...@redhat.com>
> ---
>  blockdev.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/blockdev.c b/blockdev.c
> index 6460c70..7ec7d79 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -941,6 +941,7 @@ DriveInfo *drive_init(QemuOpts *all_opts, 
> BlockInterfaceType block_default_type)
>  
>      /* Actual block device init: Functionality shared with blockdev-add */
>      dinfo = blockdev_init(filename, bs_opts, &local_err);
> +    bs_opts = NULL;
>      if (dinfo == NULL) {
>          if (local_err) {
>              qerror_report_err(local_err);
> @@ -978,6 +979,7 @@ DriveInfo *drive_init(QemuOpts *all_opts, 
> BlockInterfaceType block_default_type)
>  
>  fail:
>      qemu_opts_del(legacy_opts);
> +    QDECREF(bs_opts);
>      return dinfo;
>  }
>  
> -- 
> 1.9.3
> 
> 

This commits seems to fix two thing a leak and a double free.
Maybe reflecting this on the commit message would make the bs_opts = NULL; 
clearer.

Best regards

Benoît

Reply via email to