diff --git a/src/libopensc/pkcs15-prkey.c b/src/libopensc/pkcs15-prkey.c index 228a7b3d..a4f4a410 100644 --- a/src/libopensc/pkcs15-prkey.c +++ b/src/libopensc/pkcs15-prkey.c @@ -260,10 +260,7 @@ int sc_pkcs15_decode_prkdf_entry(struct sc_pkcs15_card *p15card, r = sc_asn1_decode_choice(ctx, asn1_prkey, *buf, *buflen, buf, buflen); if (r < 0) { /* This might have allocated something. If so, clear it now */ - if (asn1_com_prkey_attr->flags & SC_ASN1_PRESENT && - asn1_com_prkey_attr[0].flags & SC_ASN1_PRESENT) { - free(asn1_com_prkey_attr[0].parm); - } + free(info.subject.value); } if (r == SC_ERROR_ASN1_END_OF_CONTENTS) return r;