[libvirt] [PATCH 6/6] util: Plug memory leak on virNetDevMacVLanCreateWithVPortProfile() error path
Eric Blake
eblake at redhat.com
Wed Nov 30 23:56:59 UTC 2011
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):
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;
}
--
Eric Blake eblake at redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20111130/beb643d1/attachment-0001.sig>
More information about the libvir-list
mailing list