- Fixed a couple of memory leaks

- Fixed a bug in decoding EF(TokenInfo)


git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@344 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
jey 2002-03-19 10:04:11 +00:00
parent e630a05dd5
commit 3fa7a056f1
4 changed files with 6 additions and 2 deletions

View File

@ -51,6 +51,7 @@ static const struct sc_card_driver setcos_drv = {
static int setcos_finish(struct sc_card *card) static int setcos_finish(struct sc_card *card)
{ {
free(DRVDATA(card));
return 0; return 0;
} }

View File

@ -297,6 +297,8 @@ static void sc_card_free(struct sc_card *card)
free(card->app[i]->ddo); free(card->app[i]->ddo);
free(card->app[i]); free(card->app[i]);
} }
if (card->ef_dir != NULL)
sc_file_free(card->ef_dir);
free(card->ops); free(card->ops);
if (card->algorithms != NULL) if (card->algorithms != NULL)
free(card->algorithms); free(card->algorithms);

View File

@ -273,6 +273,7 @@ void sc_pkcs15_free_certificate(struct sc_pkcs15_cert *cert)
free(cert->key.data); free(cert->key.data);
free(cert->key.modulus); free(cert->key.modulus);
free(cert->issuer); free(cert->issuer);
free(cert->serial);
free(cert->data); free(cert->data);
free(cert); free(cert);
} }

View File

@ -108,13 +108,13 @@ static void parse_tokeninfo(struct sc_pkcs15_card *card, const u8 * buf, size_t
strcat(card->serial_number, byte); strcat(card->serial_number, byte);
} }
if (card->manufacturer_id == NULL) { if (card->manufacturer_id == NULL) {
if (asn1_tokeninfo[2].flags & SC_ASN1_PRESENT) if (asn1_toki[2].flags & SC_ASN1_PRESENT)
card->manufacturer_id = strdup((char *) mnfid); card->manufacturer_id = strdup((char *) mnfid);
else else
card->manufacturer_id = strdup("(unknown)"); card->manufacturer_id = strdup("(unknown)");
} }
if (card->label == NULL) { if (card->label == NULL) {
if (asn1_tokeninfo[3].flags & SC_ASN1_PRESENT) if (asn1_toki[3].flags & SC_ASN1_PRESENT)
card->label = strdup((char *) label); card->label = strdup((char *) label);
else else
card->label = strdup("(unknown)"); card->label = strdup("(unknown)");