From ac0d075faa44539f69a8ab7c9e9a00ca0a36f096 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Fri, 30 Mar 2001 15:31:42 +0000 Subject: [PATCH] Merge in the latest fixes from 0.9.6a-beta3. These changes will be part of OpenSSL 0.9.6a beta3 [engine] --- CHANGES | 6 ++++++ apps/s_server.c | 5 ++--- crypto/asn1/asn1_lib.c | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 13c729abb3..288d067f87 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,12 @@ Changes between 0.9.6 and 0.9.6a [xx XXX 2001] + *) Fix for asn1_GetSequence() for indefinite length constructed data. + If SEQUENCE is length is indefinite just set c->slen to the total + amount of data available. + [Steve Henson, reported by shige@FreeBSD.org] + [This change does not apply to 0.9.7.] + *) Change bctest to avoid here-documents inside command substitution (workaround for FreeBSD /bin/sh bug). [Bodo Moeller] diff --git a/apps/s_server.c b/apps/s_server.c index eb275e2b6d..46bf076833 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -1395,9 +1395,6 @@ static int www_body(char *hostname, int s, unsigned char *context) switch (dot) { - case 0: - dot = (e[0] == '/') ? 1 : 0; - break; case 1: dot = (e[0] == '.') ? 2 : 0; break; @@ -1408,6 +1405,8 @@ static int www_body(char *hostname, int s, unsigned char *context) dot = (e[0] == '/') ? -1 : 0; break; } + if (dot == 0) + dot = (e[0] == '/') ? 1 : 0; } dot = (dot == 3) || (dot == -1); /* filename contains ".." component */ diff --git a/crypto/asn1/asn1_lib.c b/crypto/asn1/asn1_lib.c index 77447a5240..a8b651e54e 100644 --- a/crypto/asn1/asn1_lib.c +++ b/crypto/asn1/asn1_lib.c @@ -301,7 +301,7 @@ int asn1_GetSequence(ASN1_CTX *c, long *length) return(0); } if (c->inf == (1|V_ASN1_CONSTRUCTED)) - c->slen= *length+ *(c->pp)-c->p; + c->slen= *length; c->eos=0; return(1); } -- 2.25.1