From: Dr. Stephen Henson Date: Wed, 2 Sep 2009 13:20:02 +0000 (+0000) Subject: PR: 2009 X-Git-Tag: OpenSSL_0_9_8m-beta1~123 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=1da61e8051a67bf449e44a38dd856740caeb0e8b;p=oweals%2Fopenssl.git PR: 2009 Submitted by: "Alexei Khlebnikov" Approved by: steve@openssl.org Avoid memory leak and fix error reporting in d2i_SSL_SESSION(). NB: although the ticket mentions buffer overruns this isn't a security issue because the SSL_SESSION structure is generated internally and it should never be possible to supply its contents from an untrusted application (this would among other things destroy session cache security). --- diff --git a/ssl/ssl_asn1.c b/ssl/ssl_asn1.c index 1030260b3b..48b111c8f7 100644 --- a/ssl/ssl_asn1.c +++ b/ssl/ssl_asn1.c @@ -353,8 +353,8 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, } else { - SSLerr(SSL_F_D2I_SSL_SESSION,SSL_R_UNKNOWN_SSL_VERSION); - return(NULL); + c.error=SSL_R_UNKNOWN_SSL_VERSION; + goto err; } ret->cipher=NULL; @@ -445,8 +445,8 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, { if (os.length > SSL_MAX_SID_CTX_LENGTH) { - ret->sid_ctx_length=os.length; - SSLerr(SSL_F_D2I_SSL_SESSION,SSL_R_BAD_LENGTH); + c.error=SSL_R_BAD_LENGTH; + goto err; } else {