From: Mark McLoughlin <markmc@redhat.com>
To: Glauber Costa <glommer@redhat.com>
Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Correctly free nd structure
Date: Fri, 18 Sep 2009 13:17:29 +0100 [thread overview]
Message-ID: <1253276249.4156.17.camel@blaa> (raw)
In-Reply-To: <1253220819-2850-1-git-send-email-glommer@redhat.com>
On Thu, 2009-09-17 at 16:53 -0400, Glauber Costa wrote:
> When we "free" a NICInfo structure, we can leak pointers, since we don't do
> much more than setting used = 0.
>
> We free() the model parameter, but we don't set it to NULL. This means that
> a new user of this structure will see garbage in there. It was not noticed
> before because reusing a NICInfo is not that common, but it can be, for
> users of device pci hotplug.
>
> A user hit it, described at https://bugzilla.redhat.com/show_bug.cgi?id=524022
>
> This patch memset's the whole structure, guaranteeing that anyone reusing it
> will see a fresh NICinfo. Also, we free some other strings that are currently
> leaking.
>
> This codebase is quite old, so this patch should feed all stable trees.
>
> Signed-off-by: Glauber Costa <glommer@redhat.com>
> ---
> net.c | 9 +++++++--
> 1 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/net.c b/net.c
> index 340177e..a405895 100644
> --- a/net.c
> +++ b/net.c
> @@ -2804,8 +2804,13 @@ void net_client_uninit(NICInfo *nd)
> {
> nd->vlan->nb_guest_devs--;
> nb_nics--;
> - nd->used = 0;
> - free((void *)nd->model);
> +
> + qemu_free((void *)nd->model);
> + qemu_free((void *)nd->name);
> + qemu_free((void *)nd->devaddr);
> + qemu_free((void *)nd->id);
> +
> + memset(nd, 0, sizeof(*nd));
> }
>
Looks good to me; my patch to port to QemuOpts actually zeros out the
struct during init()
What is the (void *) cast for, though?
Thanks,
Mark.
next prev parent reply other threads:[~2009-09-18 12:18 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-17 20:53 [Qemu-devel] [PATCH] Correctly free nd structure Glauber Costa
2009-09-18 12:17 ` Mark McLoughlin [this message]
2009-09-18 12:44 ` Glauber Costa
2009-09-18 13:58 ` Mark McLoughlin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1253276249.4156.17.camel@blaa \
--to=markmc@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=glommer@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.