]> granicus.if.org Git - apache/commitdiff
* modules/ssl/ssl_engine_vars.c (ssl_var_lookup_ssl): Fix segfault if
authorJoe Orton <jorton@apache.org>
Mon, 12 Jan 2004 10:51:44 +0000 (10:51 +0000)
committerJoe Orton <jorton@apache.org>
Mon, 12 Jan 2004 10:51:44 +0000 (10:51 +0000)
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

modules/ssl/ssl_engine_vars.c

index 53a519d3c540e4163ccff8f1a1cf0ad1a1372daa..5601e924f67f54a1dc83ff42e6a1a766964dc26c 100644 (file)
@@ -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);