From: Nikos Mavrogiannopoulos Date: Fri, 29 Apr 2016 11:12:36 +0000 (+0200) Subject: libtasn1: updated to latest version X-Git-Tag: gnutls_3_5_0~55 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6d49b3dfd70865065ed74131bb21b609d46a477e;p=thirdparty%2Fgnutls.git libtasn1: updated to latest version --- diff --git a/lib/minitasn1/coding.c b/lib/minitasn1/coding.c index 0c0f69c5ce..7821d85b7a 100644 --- a/lib/minitasn1/coding.c +++ b/lib/minitasn1/coding.c @@ -757,7 +757,7 @@ _asn1_ordering_set (unsigned char *der, int der_len, asn1_node node) if (err != ASN1_SUCCESS) goto error; - t = class << 24; + t = ((unsigned int)class) << 24; p_vet->value = t | tag; counter += len2; diff --git a/lib/minitasn1/decoding.c b/lib/minitasn1/decoding.c index e5513a38b0..cfe2322910 100644 --- a/lib/minitasn1/decoding.c +++ b/lib/minitasn1/decoding.c @@ -1361,7 +1361,15 @@ asn1_der_decoding2 (asn1_node *element, const void *ider, int *max_ider_len, { /* indefinite length method */ p->tmp_ival = -1; } + p2 = p->down; + if (p2 == NULL) + { + result = ASN1_DER_ERROR; + warn(); + goto cleanup; + } + while ((type_field (p2->type) == ASN1_ETYPE_TAG) || (type_field (p2->type) == ASN1_ETYPE_SIZE)) p2 = p2->right; @@ -1532,11 +1540,6 @@ asn1_der_decoding (asn1_node * element, const void *ider, int ider_len, return asn1_der_decoding2 (element, ider, &ider_len, 0, errorDescription); } -#define FOUND 1 -#define SAME_BRANCH 2 -#define OTHER_BRANCH 3 -#define EXIT 4 - /** * asn1_der_decoding_element: * @structure: pointer to an ASN1 structure diff --git a/lib/minitasn1/element.c b/lib/minitasn1/element.c index dceb8ba83e..b7a0905efb 100644 --- a/lib/minitasn1/element.c +++ b/lib/minitasn1/element.c @@ -152,7 +152,10 @@ _asn1_append_sequence_set (asn1_node node, struct node_tail_cache_st *pcache) while ((type_field (p->type) == ASN1_ETYPE_TAG) || (type_field (p->type) == ASN1_ETYPE_SIZE)) p = p->right; + p2 = _asn1_copy_structure3 (p); + if (p2 == NULL) + return ASN1_GENERIC_ERROR; if (pcache == NULL || pcache->tail == NULL || pcache->head != node) {