From: Joe Orton Date: Mon, 12 Jan 2004 10:51:44 +0000 (+0000) Subject: * modules/ssl/ssl_engine_vars.c (ssl_var_lookup_ssl): Fix segfault if X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58719590342aa5f51363cf5a42467f33764bc865;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 (lendl@nic.at) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk/modules/ssl@102281 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/ssl_engine_vars.c b/ssl_engine_vars.c index 53a519d3c54..5601e924f67 100644 --- a/ssl_engine_vars.c +++ b/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);