qemu-devel
[Top][All Lists]
Advanced

[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: Alon Levy
Subject: Re: [Qemu-devel] [PATCH] libcacard: don't leak vcard_emul_alloc_arrays mem
Date: Fri, 22 Jul 2011 14:54:04 +0300
User-agent: Mutt/1.5.21 (2010-09-15)

On Fri, Jul 22, 2011 at 01:30:49PM +0200, Christophe Fergeau wrote:
> Ping?
> 

I'll pick it up in my pull request.

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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]