[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;
> }
>
>