summaryrefslogtreecommitdiff
path: root/Cryptlib/OpenSSL/crypto/asn1/asn1_par.c
diff options
context:
space:
mode:
authorGary Lin <glin@suse.com>2016-07-21 12:28:11 +0800
committerPeter Jones <pjones@redhat.com>2016-09-06 15:05:36 -0400
commit8dcfecc6c76effa8afe0d4b6eca95023d51f1e03 (patch)
tree42c00f22bb1e6c668703bd83939f30dda01ad7e6 /Cryptlib/OpenSSL/crypto/asn1/asn1_par.c
parentd8b0e8e0ce347d9f5830cfeb3fd09a887a903d09 (diff)
downloadefi-boot-shim-8dcfecc6c76effa8afe0d4b6eca95023d51f1e03.tar.gz
efi-boot-shim-8dcfecc6c76effa8afe0d4b6eca95023d51f1e03.zip
Update to openssl 1.0.2h
Signed-off-by: Gary Lin <glin@suse.com>
Diffstat (limited to 'Cryptlib/OpenSSL/crypto/asn1/asn1_par.c')
-rw-r--r--Cryptlib/OpenSSL/crypto/asn1/asn1_par.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/Cryptlib/OpenSSL/crypto/asn1/asn1_par.c b/Cryptlib/OpenSSL/crypto/asn1/asn1_par.c
index 0ca985a2..e85e3398 100644
--- a/Cryptlib/OpenSSL/crypto/asn1/asn1_par.c
+++ b/Cryptlib/OpenSSL/crypto/asn1/asn1_par.c
@@ -173,6 +173,8 @@ static int asn1_parse2(BIO *bp, const unsigned char **pp, long length,
if (!asn1_print_info(bp, tag, xclass, j, (indent) ? depth : 0))
goto end;
if (j & V_ASN1_CONSTRUCTED) {
+ const unsigned char *sp;
+
ep = p + len;
if (BIO_write(bp, "\n", 1) <= 0)
goto end;
@@ -182,6 +184,7 @@ static int asn1_parse2(BIO *bp, const unsigned char **pp, long length,
goto end;
}
if ((j == 0x21) && (len == 0)) {
+ sp = p;
for (;;) {
r = asn1_parse2(bp, &p, (long)(tot - p),
offset + (p - *pp), depth + 1,
@@ -190,19 +193,25 @@ static int asn1_parse2(BIO *bp, const unsigned char **pp, long length,
ret = 0;
goto end;
}
- if ((r == 2) || (p >= tot))
+ if ((r == 2) || (p >= tot)) {
+ len = p - sp;
break;
+ }
}
- } else
+ } else {
+ long tmp = len;
+
while (p < ep) {
- r = asn1_parse2(bp, &p, (long)len,
- offset + (p - *pp), depth + 1,
+ sp = p;
+ r = asn1_parse2(bp, &p, tmp, offset + (p - *pp), depth + 1,
indent, dump);
if (r == 0) {
ret = 0;
goto end;
}
+ tmp -= p - sp;
}
+ }
} else if (xclass != 0) {
p += len;
if (BIO_write(bp, "\n", 1) <= 0)