diff options
-rw-r--r-- | scd/apdu.c | 4 | ||||
-rw-r--r-- | scd/app-nks.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/scd/apdu.c b/scd/apdu.c index 2d77ae03f..10657102e 100644 --- a/scd/apdu.c +++ b/scd/apdu.c @@ -1985,6 +1985,7 @@ apdu_dev_list_start (const char *portstr, struct dev_list **l_p) err = ccid_dev_scan (&dl->idx_max, &dl->table); if (err) { + xfree (dl); npth_mutex_unlock (&reader_table_lock); return err; } @@ -2009,6 +2010,7 @@ apdu_dev_list_start (const char *portstr, struct dev_list **l_p) if (!pcsc.context) if (pcsc_init () < 0) { + xfree (dl); npth_mutex_unlock (&reader_table_lock); return gpg_error (GPG_ERR_NO_SERVICE); } @@ -2023,6 +2025,7 @@ apdu_dev_list_start (const char *portstr, struct dev_list **l_p) log_error ("error allocating memory for reader list\n"); close_pcsc_reader (0); + xfree (dl); npth_mutex_unlock (&reader_table_lock); return err; } @@ -2034,6 +2037,7 @@ apdu_dev_list_start (const char *portstr, struct dev_list **l_p) pcsc_error_string (r), r); xfree (p); close_pcsc_reader (0); + xfree (dl); npth_mutex_unlock (&reader_table_lock); return iso7816_map_sw (pcsc_error_to_sw (r)); } diff --git a/scd/app-nks.c b/scd/app-nks.c index bf2ad51b7..31b91ac93 100644 --- a/scd/app-nks.c +++ b/scd/app-nks.c @@ -372,7 +372,7 @@ pubkey_from_pk_file (app_t app, int pkfid, int cfid, newlen = 1 + buflen[i] - offset[i]; newbuf = xtrymalloc (newlen); - if (!newlen) + if (!newbuf) { err = gpg_error_from_syserror (); xfree (buffer[0]); |