diff options
author | Dr. David von Oheimb <David.von.Oheimb@siemens.com> | 2021-03-01 14:45:23 +0100 |
---|---|---|
committer | Dr. David von Oheimb <dev@ddvo.net> | 2021-04-21 15:06:21 +0200 |
commit | 3e73111d133dda63ec42437ff5706ac3142f17a5 (patch) | |
tree | 7d80a020a81b9b0412e228dd5e65a76f9dec12f8 /crypto/asn1/asn1_lib.c | |
parent | db76a35e26ea09781caa5b941bdfeacb52e720d8 (diff) |
ASN.1: Add some sanity checks for input len <= 0; related coding improvements
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14357)
Diffstat (limited to 'crypto/asn1/asn1_lib.c')
-rw-r--r-- | crypto/asn1/asn1_lib.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/crypto/asn1/asn1_lib.c b/crypto/asn1/asn1_lib.c index d45419e5f0..72d15acc7e 100644 --- a/crypto/asn1/asn1_lib.c +++ b/crypto/asn1/asn1_lib.c @@ -52,8 +52,10 @@ int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, int tag, xclass, inf; long max = omax; - if (!max) - goto err; + if (omax <= 0) { + ERR_raise(ERR_LIB_ASN1, ASN1_R_TOO_SMALL); + return 0x80; + } ret = (*p & V_ASN1_CONSTRUCTED); xclass = (*p & V_ASN1_PRIVATE); i = *p & V_ASN1_PRIMITIVE_TAG; |