[libvirt] [PATCH 6/6] util: Plug memory leak on virNetDevMacVLanCreateWithVPortProfile() error path

Alex Jia ajia at redhat.com
Thu Dec 1 03:17:49 UTC 2011


On 12/01/2011 07:56 AM, Eric Blake wrote:
> On 11/29/2011 10:57 PM, ajia at redhat.com wrote:
>> From: Alex Jia<ajia at redhat.com>
>>
>> Detected by Coverity. Leak introduced in commit 90074ec.
>>
>> Signed-off-by: Alex Jia<ajia at redhat.com>
>> ---
>>   src/util/virnetdevmacvlan.c |    1 +
>>   1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/src/util/virnetdevmacvlan.c b/src/util/virnetdevmacvlan.c
>> index 12fc411..80a9f80 100644
>> --- a/src/util/virnetdevmacvlan.c
>> +++ b/src/util/virnetdevmacvlan.c
>> @@ -582,6 +582,7 @@ create_name:
>>           virNetDevError(VIR_ERR_INTERNAL_ERROR,
>>                          _("cannot set bandwidth limits on %s"),
>>                          cr_ifname);
>> +        VIR_FORCE_CLOSE(rc);
>>           rc = -1;
>>           goto disassociate_exit;
> Close, but this botches the case when !withTap (then, rc is 0 and you
> just nuked stdin).  Here's what I'm squashing before pushing (and
> hopefully Coverity isn't too confused because we overload rc to be
> either an fd or just 0 depending on withTap):
Yeah, Coverity complains 'rc' is overwritten, it has a little confused 
for this.
> diff --git i/src/util/virnetdevmacvlan.c w/src/util/virnetdevmacvlan.c
> index 80a9f80..5e55b72 100644
> --- i/src/util/virnetdevmacvlan.c
> +++ w/src/util/virnetdevmacvlan.c
> @@ -582,8 +582,10 @@ create_name:
>           virNetDevError(VIR_ERR_INTERNAL_ERROR,
>                          _("cannot set bandwidth limits on %s"),
>                          cr_ifname);
> -        VIR_FORCE_CLOSE(rc);
> -        rc = -1;
> +        if (withTap)
> +            VIR_FORCE_CLOSE(rc); /* sets rc to -1 */
> +        else
> +            rc = -1;
>           goto disassociate_exit;
>       }
>
>
>




More information about the libvir-list mailing list