[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] libcacard: don't leak vcard_emul_alloc_arrays m
From: |
Christophe Fergeau |
Subject: |
Re: [Qemu-devel] [PATCH] libcacard: don't leak vcard_emul_alloc_arrays mem |
Date: |
Fri, 22 Jul 2011 13:30:49 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Ping?
On Mon, Jul 04, 2011 at 06:10:43PM +0200, Christophe Fergeau wrote:
> vcard_emul_mirror_card and vcard_emul_init use
> vcard_emul_alloc_arrays to allocate memory for temporary arrays
> which will contain elements that in the end will be used one by
> one in cac_card_init. The arrays themselves are never stored
> anywhere, they are only used as temporary containers. Hence
> the memory that was allocated for these arrays should be freed
> after use or they will be leaked.
> ---
> libcacard/vcard_emul_nss.c | 11 ++++++++++-
> 1 files changed, 10 insertions(+), 1 deletions(-)
>
> diff --git a/libcacard/vcard_emul_nss.c b/libcacard/vcard_emul_nss.c
> index de324ba..4fee471 100644
> --- a/libcacard/vcard_emul_nss.c
> +++ b/libcacard/vcard_emul_nss.c
> @@ -476,6 +476,7 @@ vcard_emul_mirror_card(VReader *vreader)
> VCardKey **keys;
> PK11SlotInfo *slot;
> PRBool ret;
> + VCard *card;
>
> slot = vcard_emul_reader_get_slot(vreader);
> if (slot == NULL) {
> @@ -535,7 +536,12 @@ vcard_emul_mirror_card(VReader *vreader)
> }
>
> /* now create the card */
> - return vcard_emul_make_card(vreader, certs, cert_len, keys, cert_count);
> + card = vcard_emul_make_card(vreader, certs, cert_len, keys, cert_count);
> + qemu_free(certs);
> + qemu_free(cert_len);
> + qemu_free(keys);
> +
> + return card;
> }
>
> static VCardEmulType default_card_type = VCARD_EMUL_NONE;
> @@ -820,6 +826,9 @@ vcard_emul_init(const VCardEmulOptions *options)
> vreader_free(vreader);
> has_readers = PR_TRUE;
> }
> + qemu_free(certs);
> + qemu_free(cert_len);
> + qemu_free(keys);
> }
>
> /* if we aren't suppose to use hw, skip looking up hardware tokens */
> --
> 1.7.5.4
>
>
pgpltlTjbxEf3.pgp
Description: PGP signature