Benoît Canet <benoit.ca...@irqsave.net> writes:

> 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.

I'm blind.  Can you explain the double free to me?

Reply via email to