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-Tag: pre_ajp_proxy~823 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=faf133a57732382af75f0c93e0b9673d575e2417;p=apache * 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@102281 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/ssl/ssl_engine_vars.c b/modules/ssl/ssl_engine_vars.c index 53a519d3c5..5601e924f6 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);