From: Richard Levitte Date: Fri, 30 Mar 2001 15:31:42 +0000 (+0000) Subject: Merge in the latest fixes from 0.9.6a-beta3. X-Git-Tag: OpenSSL-engine-0_9_6a-beta3~1 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ac0d075faa44539f69a8ab7c9e9a00ca0a36f096;p=oweals%2Fopenssl.git Merge in the latest fixes from 0.9.6a-beta3. These changes will be part of OpenSSL 0.9.6a beta3 [engine] --- 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); }