qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-trivial] [Qemu-devel] [PATCH] libcacard: g_malloc cleanups


From: Alon Levy
Subject: Re: [Qemu-trivial] [Qemu-devel] [PATCH] libcacard: g_malloc cleanups
Date: Sun, 11 May 2014 11:03:44 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0

On 05/08/2014 06:54 PM, Michael Tokarev wrote:
> This patch replaces g_malloc() in libcacard into g_new()
> or g_new0() where appropriate (removing some init-to-zero
> surrounding code), g_malloc+memcpy into g_memdup() and the
> like.

Reviewed-by: Alon Levy <address@hidden>

just one comment below.

> 
> Signed-off-by: Michael Tokarev <address@hidden>
> ---
>  libcacard/cac.c            |   11 +++--------
>  libcacard/card_7816.c      |   11 +++++------
>  libcacard/event.c          |    2 +-
>  libcacard/vcard.c          |   22 +++++-----------------
>  libcacard/vcard_emul_nss.c |   12 ++++++------
>  libcacard/vreader.c        |   11 +++--------
>  6 files changed, 23 insertions(+), 46 deletions(-)
> 
> diff --git a/libcacard/cac.c b/libcacard/cac.c
> index 74ef3e3..122129e 100644
> --- a/libcacard/cac.c
> +++ b/libcacard/cac.c
> @@ -310,16 +310,11 @@ static VCardAppletPrivate *
>  cac_new_pki_applet_private(const unsigned char *cert,
>                             int cert_len, VCardKey *key)
>  {
> -    CACPKIAppletData *pki_applet_data = NULL;
> -    VCardAppletPrivate *applet_private = NULL;

These two lines above (and the corresponding ones beloow) seem unrelated
to this patch.

> -    applet_private = (VCardAppletPrivate 
> *)g_malloc(sizeof(VCardAppletPrivate));
> +    CACPKIAppletData *pki_applet_data;
> +    VCardAppletPrivate *applet_private;
>  
> +    applet_private = g_new0(VCardAppletPrivate, 1);
>      pki_applet_data = &(applet_private->u.pki_data);
> -    pki_applet_data->cert_buffer = NULL;
> -    pki_applet_data->cert_buffer_len = 0;
> -    pki_applet_data->sign_buffer = NULL;
> -    pki_applet_data->sign_buffer_len = 0;
> -    pki_applet_data->key = NULL;
>      pki_applet_data->cert = (unsigned char *)g_malloc(cert_len+1);
>      /*
>       * if we want to support compression, then we simply change the 0 to a 1
> diff --git a/libcacard/card_7816.c b/libcacard/card_7816.c
> index c28bb60..bca8c4a 100644
> --- a/libcacard/card_7816.c
> +++ b/libcacard/card_7816.c
> @@ -51,7 +51,7 @@ vcard_response_new_data(unsigned char *buf, int len)
>  {
>      VCardResponse *new_response;
>  
> -    new_response = (VCardResponse *)g_malloc(sizeof(VCardResponse));
> +    new_response = g_new(VCardResponse, 1);
>      new_response->b_data = g_malloc(len + 2);
>      memcpy(new_response->b_data, buf, len);
>      new_response->b_total_len = len+2;
> @@ -132,7 +132,7 @@ vcard_response_new_status(vcard_7816_status_t status)
>  {
>      VCardResponse *new_response;
>  
> -    new_response = (VCardResponse *)g_malloc(sizeof(VCardResponse));
> +    new_response = g_new(VCardResponse, 1);
>      new_response->b_data = &new_response->b_sw1;
>      new_response->b_len = 0;
>      new_response->b_total_len = 2;
> @@ -149,7 +149,7 @@ vcard_response_new_status_bytes(unsigned char sw1, 
> unsigned char sw2)
>  {
>      VCardResponse *new_response;
>  
> -    new_response = (VCardResponse *)g_malloc(sizeof(VCardResponse));
> +    new_response = g_new(VCardResponse, 1);
>      new_response->b_data = &new_response->b_sw1;
>      new_response->b_len = 0;
>      new_response->b_total_len = 2;
> @@ -336,9 +336,8 @@ vcard_apdu_new(unsigned char *raw_apdu, int len, 
> vcard_7816_status_t *status)
>          return NULL;
>      }
>  
> -    new_apdu = (VCardAPDU *)g_malloc(sizeof(VCardAPDU));
> -    new_apdu->a_data = g_malloc(len);
> -    memcpy(new_apdu->a_data, raw_apdu, len);
> +    new_apdu = g_new(VCardAPDU, 1);
> +    new_apdu->a_data = g_memdup(raw_apdu, len);
>      new_apdu->a_len = len;
>      *status = vcard_apdu_set_class(new_apdu);
>      if (*status != VCARD7816_STATUS_SUCCESS) {
> diff --git a/libcacard/event.c b/libcacard/event.c
> index 2d7500f..a2e6c7d 100644
> --- a/libcacard/event.c
> +++ b/libcacard/event.c
> @@ -17,7 +17,7 @@ vevent_new(VEventType type, VReader *reader, VCard *card)
>  {
>      VEvent *new_vevent;
>  
> -    new_vevent = (VEvent *)g_malloc(sizeof(VEvent));
> +    new_vevent = g_new(VEvent, 1);
>      new_vevent->next = NULL;
>      new_vevent->type = type;
>      new_vevent->reader = vreader_reference(reader);
> diff --git a/libcacard/vcard.c b/libcacard/vcard.c
> index 539177b..227e477 100644
> --- a/libcacard/vcard.c
> +++ b/libcacard/vcard.c
> @@ -37,9 +37,8 @@ vcard_buffer_response_new(unsigned char *buffer, int size)
>  {
>      VCardBufferResponse *new_buffer;
>  
> -    new_buffer = (VCardBufferResponse 
> *)g_malloc(sizeof(VCardBufferResponse));
> -    new_buffer->buffer = (unsigned char *)g_malloc(size);
> -    memcpy(new_buffer->buffer, buffer, size);
> +    new_buffer = g_new(VCardBufferResponse, 1);
> +    new_buffer->buffer = (unsigned char *)g_memdup(buffer, size);
>      new_buffer->buffer_len = size;
>      new_buffer->current = new_buffer->buffer;
>      new_buffer->len = size;
> @@ -102,15 +101,11 @@ vcard_new_applet(VCardProcessAPDU 
> applet_process_function,
>  {
>      VCardApplet *applet;
>  
> -    applet = (VCardApplet *)g_malloc(sizeof(VCardApplet));
> -    applet->next = NULL;
> -    applet->applet_private = NULL;
> -    applet->applet_private_free = NULL;
> +    applet = g_new0(VCardApplet, 1);
>      applet->process_apdu = applet_process_function;
>      applet->reset_applet = applet_reset_function;
>  
> -    applet->aid = g_malloc(aid_len);
> -    memcpy(applet->aid, aid, aid_len);
> +    applet->aid = g_memdup(aid, aid_len);
>      applet->aid_len = aid_len;
>      return applet;
>  }
> @@ -149,18 +144,11 @@ VCard *
>  vcard_new(VCardEmul *private, VCardEmulFree private_free)
>  {
>      VCard *new_card;
> -    int i;
>  
> -    new_card = (VCard *)g_malloc(sizeof(VCard));
> -    new_card->applet_list = NULL;
> -    for (i = 0; i < MAX_CHANNEL; i++) {
> -        new_card->current_applet[i] = NULL;
> -    }
> -    new_card->vcard_buffer_response = NULL;
> +    new_card = g_new0(VCard, 1);
>      new_card->type = VCARD_VM;
>      new_card->vcard_private = private;
>      new_card->vcard_private_free = private_free;
> -    new_card->vcard_get_atr = NULL;
>      new_card->reference_count = 1;
>      return new_card;
>  }
> diff --git a/libcacard/vcard_emul_nss.c b/libcacard/vcard_emul_nss.c
> index e2b196d..75b9d79 100644
> --- a/libcacard/vcard_emul_nss.c
> +++ b/libcacard/vcard_emul_nss.c
> @@ -94,9 +94,9 @@ static void
>  vcard_emul_alloc_arrays(unsigned char ***certsp, int **cert_lenp,
>                          VCardKey ***keysp, int cert_count)
>  {
> -    *certsp = (unsigned char **)g_malloc(sizeof(unsigned char *)*cert_count);
> -    *cert_lenp = (int *)g_malloc(sizeof(int)*cert_count);
> -    *keysp = (VCardKey **)g_malloc(sizeof(VCardKey *)*cert_count);
> +    *certsp = g_new(unsigned char *, cert_count);
> +    *cert_lenp = g_new(int, cert_count);
> +    *keysp = g_new(VCardKey *, cert_count);
>  }
>  
>  /*
> @@ -139,7 +139,7 @@ vcard_emul_make_key(PK11SlotInfo *slot, CERTCertificate 
> *cert)
>  {
>      VCardKey *key;
>  
> -    key = (VCardKey *)g_malloc(sizeof(VCardKey));
> +    key = g_new(VCardKey, 1);
>      key->slot = PK11_ReferenceSlot(slot);
>      key->cert = CERT_DupCertificate(cert);
>      /* NOTE: if we aren't logged into the token, this could return NULL */
> @@ -449,7 +449,7 @@ vreader_emul_new(PK11SlotInfo *slot, VCardEmulType type, 
> const char *params)
>  {
>      VReaderEmul *new_reader_emul;
>  
> -    new_reader_emul = (VReaderEmul *)g_malloc(sizeof(VReaderEmul));
> +    new_reader_emul = g_new(VReaderEmul, 1);
>  
>      new_reader_emul->slot = PK11_ReferenceSlot(slot);
>      new_reader_emul->default_type = type;
> @@ -1189,7 +1189,7 @@ vcard_emul_options(const char *args)
>                  g_strndup(type_params, type_params_length);
>              count = count_tokens(args, ',', ')') + 1;
>              vreaderOpt->cert_count = count;
> -            vreaderOpt->cert_name = (char **)g_malloc(count*sizeof(char *));
> +            vreaderOpt->cert_name = g_new(char *, count);
>              for (i = 0; i < count; i++) {
>                  const char *cert = args;
>                  args = strpbrk(args, ",)");
> diff --git a/libcacard/vreader.c b/libcacard/vreader.c
> index 7720295..9304a28 100644
> --- a/libcacard/vreader.c
> +++ b/libcacard/vreader.c
> @@ -115,7 +115,7 @@ vreader_new(const char *name, VReaderEmul *private,
>  {
>      VReader *reader;
>  
> -    reader = (VReader *)g_malloc(sizeof(VReader));
> +    reader = g_new(VReader, 1);
>      qemu_mutex_init(&reader->lock);
>      reader->reference_count = 1;
>      reader->name = g_strdup(name);
> @@ -312,10 +312,7 @@ vreader_list_entry_new(VReader *reader)
>  {
>      VReaderListEntry *new_reader_list_entry;
>  
> -    new_reader_list_entry = (VReaderListEntry *)
> -                               g_malloc(sizeof(VReaderListEntry));
> -    new_reader_list_entry->next = NULL;
> -    new_reader_list_entry->prev = NULL;
> +    new_reader_list_entry = g_new0(VReaderListEntry, 1);
>      new_reader_list_entry->reader = vreader_reference(reader);
>      return new_reader_list_entry;
>  }
> @@ -336,9 +333,7 @@ vreader_list_new(void)
>  {
>      VReaderList *new_reader_list;
>  
> -    new_reader_list = (VReaderList *)g_malloc(sizeof(VReaderList));
> -    new_reader_list->head = NULL;
> -    new_reader_list->tail = NULL;
> +    new_reader_list = g_new0(VReaderList, 1);
>      return new_reader_list;
>  }
>  
> 




reply via email to

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