From 376dc4e06b4936ff0c9c53b8f53795d0b3774ab3 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Mon, 10 Apr 2017 17:33:29 +0100 Subject: [PATCH] Reject decoding of an INT64 with a value >INT64_MAX Reviewed-by: Richard Levitte Reviewed-by: Andy Polyakov (Merged from https://github.com/openssl/openssl/pull/3159) (cherry picked from commit 0856e3f167964f58c26796331eab9d8b0a883921) --- crypto/asn1/x_int64.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crypto/asn1/x_int64.c b/crypto/asn1/x_int64.c index e0520ffa2d..26578b29c0 100644 --- a/crypto/asn1/x_int64.c +++ b/crypto/asn1/x_int64.c @@ -71,6 +71,11 @@ static int uint64_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len, ASN1err(ASN1_F_UINT64_C2I, ASN1_R_ILLEGAL_NEGATIVE_VALUE); return 0; } + if ((it->size & INTxx_FLAG_SIGNED) == INTxx_FLAG_SIGNED + && !neg && utmp > INT64_MAX) { + ASN1err(ASN1_F_UINT64_C2I, ASN1_R_TOO_LARGE); + return 0; + } memcpy(cp, &utmp, sizeof(utmp)); return 1; } -- 2.25.1