From: Joe Orton Date: Fri, 30 Jan 2004 13:03:23 +0000 (+0000) Subject: * modules/ssl/ssl_engine_vars.c (ssl_var_lookup_ssl): Fix segfault if X-Git-Tag: 2.0.49~175 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0210b7f95074565b92c2fc18d6430c532cb49055;p=thirdparty%2Fapache%2Fhttpd.git * modules/ssl/ssl_engine_vars.c (ssl_var_lookup_ssl): Fix segfault if SSL_get_session() returns NULL. PR: 15057 Submitted by: Otmar Lendl Reviewed by: Joe Orton, Jeff Trawick, Andr�� Malo git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/APACHE_2_0_BRANCH@102459 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 5f5fe4f72c5..9e208883534 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,8 @@ Changes with Apache 2.0.49 + *) mod_ssl: Fix potential segfault on lookup of SSL_SESSION_ID. + PR 15057. [Otmar Lendl ] + *) mod_ssl: Fix streaming output from an nph- CGI script. PR 21944 [Joe Orton] diff --git a/modules/ssl/ssl_engine_vars.c b/modules/ssl/ssl_engine_vars.c index 53a519d3c54..5601e924f67 100644 --- a/modules/ssl/ssl_engine_vars.c +++ b/modules/ssl/ssl_engine_vars.c @@ -281,10 +281,12 @@ static char *ssl_var_lookup_ssl(apr_pool_t *p, conn_rec *c, char *var) else if (ssl != NULL && strcEQ(var, "SESSION_ID")) { char buf[SSL_SESSION_ID_STRING_LEN]; SSL_SESSION *pSession = SSL_get_session(ssl); - result = apr_pstrdup(p, SSL_SESSION_id2sz( - SSL_SESSION_get_session_id(pSession), - SSL_SESSION_get_session_id_length(pSession), - buf, sizeof(buf))); + if (pSession) { + result = apr_pstrdup(p, SSL_SESSION_id2sz( + SSL_SESSION_get_session_id(pSession), + SSL_SESSION_get_session_id_length(pSession), + buf, sizeof(buf))); + } } else if (ssl != NULL && strlen(var) >= 6 && strcEQn(var, "CIPHER", 6)) { result = ssl_var_lookup_ssl_cipher(p, c, var+6);