[openssl-commits] [openssl] OpenSSL_1_0_0-stable update

Dr. Stephen Henson steve at openssl.org
Tue Nov 24 15:33:52 UTC 2015


The branch OpenSSL_1_0_0-stable has been updated
       via  275502eb41dbfc02910e48f6e55e65ea163854b9 (commit)
      from  d7ebdc2e98f7cc1df99fd7dd675bb6cfd6adb1ba (commit)


- Log -----------------------------------------------------------------
commit 275502eb41dbfc02910e48f6e55e65ea163854b9
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Thu Sep 3 14:27:19 2015 +0100

    Limit depth of ASN1 parse printing.
    
    Thanks to Guido Vranken <guidovranken at gmail.com> for reporting this issue.
    
    Reviewed-by: Tim Hudson <tjh at openssl.org>
    (cherry picked from commit 158e5207a794603f5d64ffa95e0247c7808ab445)
    
    Conflicts:
    	crypto/asn1/asn1_par.c

-----------------------------------------------------------------------

Summary of changes:
 crypto/asn1/asn1_par.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/crypto/asn1/asn1_par.c b/crypto/asn1/asn1_par.c
index f6cd4b2..4e8e254 100644
--- a/crypto/asn1/asn1_par.c
+++ b/crypto/asn1/asn1_par.c
@@ -62,6 +62,10 @@
 #include <openssl/objects.h>
 #include <openssl/asn1.h>
 
+#ifndef ASN1_PARSE_MAXDEPTH
+#define ASN1_PARSE_MAXDEPTH 128
+#endif
+
 static int asn1_print_info(BIO *bp, int tag, int xclass, int constructed,
                            int indent);
 static int asn1_parse2(BIO *bp, const unsigned char **pp, long length,
@@ -128,6 +132,12 @@ static int asn1_parse2(BIO *bp, const unsigned char **pp, long length,
 #else
     dump_indent = 6;            /* Because we know BIO_dump_indent() */
 #endif
+
+    if (depth > ASN1_PARSE_MAXDEPTH) {
+            BIO_puts(bp, "BAD RECURSION DEPTH\n");
+            goto end;
+    }
+
     p = *pp;
     tot = p + length;
     op = p - 1;


More information about the openssl-commits mailing list