From b371a682fb67ff945a8095437b9b33cab549bb49 Mon Sep 17 00:00:00 2001 From: Gary Lin Date: Thu, 13 Oct 2016 15:57:25 +0800 Subject: Update to openssl 1.0.2j Signed-off-by: Gary Lin --- Cryptlib/OpenSSL/crypto/asn1/a_set.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'Cryptlib/OpenSSL/crypto/asn1/a_set.c') diff --git a/Cryptlib/OpenSSL/crypto/asn1/a_set.c b/Cryptlib/OpenSSL/crypto/asn1/a_set.c index bf3f9718..5fb58655 100644 --- a/Cryptlib/OpenSSL/crypto/asn1/a_set.c +++ b/Cryptlib/OpenSSL/crypto/asn1/a_set.c @@ -57,6 +57,7 @@ */ #include +#include #include "cryptlib.h" #include @@ -98,10 +99,14 @@ int i2d_ASN1_SET(STACK_OF(OPENSSL_BLOCK) *a, unsigned char **pp, if (a == NULL) return (0); - for (i = sk_OPENSSL_BLOCK_num(a) - 1; i >= 0; i--) + for (i = sk_OPENSSL_BLOCK_num(a) - 1; i >= 0; i--) { + int tmplen = i2d(sk_OPENSSL_BLOCK_value(a, i), NULL); + if (tmplen > INT_MAX - ret) + return -1; ret += i2d(sk_OPENSSL_BLOCK_value(a, i), NULL); + } r = ASN1_object_size(1, ret, ex_tag); - if (pp == NULL) + if (pp == NULL || r == -1) return (r); p = *pp; -- cgit v1.2.3