From 7ddce245b8c1485c1d3e59e651929145e326e2d6 Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Thu, 10 Sep 2015 22:38:39 +0200 Subject: [PATCH] save the plain constructed-, sequence- or set-data details --- src/pk/asn1/der/sequence/der_decode_sequence_flexi.c | 9 +++++++++ src/pk/asn1/der/sequence/der_sequence_free.c | 4 +--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/pk/asn1/der/sequence/der_decode_sequence_flexi.c b/src/pk/asn1/der/sequence/der_decode_sequence_flexi.c index caad485..62ca40c 100644 --- a/src/pk/asn1/der/sequence/der_decode_sequence_flexi.c +++ b/src/pk/asn1/der/sequence/der_decode_sequence_flexi.c @@ -348,6 +348,15 @@ int der_decode_sequence_flexi(const unsigned char *in, unsigned long *inlen, ltc l->type = LTC_ASN1_SET; } + if ((l->data = XMALLOC(len)) == NULL) { + err = CRYPT_MEM; + goto error; + } + + XMEMCPY(l->data, in, len); + l->size = len; + + /* jump to the start of the data */ in += data_offset; *inlen -= data_offset; diff --git a/src/pk/asn1/der/sequence/der_sequence_free.c b/src/pk/asn1/der/sequence/der_sequence_free.c index e849483..4600d5f 100644 --- a/src/pk/asn1/der/sequence/der_sequence_free.c +++ b/src/pk/asn1/der/sequence/der_sequence_free.c @@ -46,9 +46,7 @@ void der_sequence_free(ltc_asn1_list *in) } switch (in->type) { - case LTC_ASN1_SET: - case LTC_ASN1_SETOF: - case LTC_ASN1_SEQUENCE: break; + case LTC_ASN1_SETOF: break; case LTC_ASN1_INTEGER : if (in->data != NULL) { mp_clear(in->data); } break; default : if (in->data != NULL) { XFREE(in->data); } }