]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
* modules/ssl/ssl_engine_vars.c (ssl_var_lookup_ssl): Fix segfault if
authorJoe Orton <jorton@apache.org>
Fri, 30 Jan 2004 13:03:23 +0000 (13:03 +0000)
committerJoe Orton <jorton@apache.org>
Fri, 30 Jan 2004 13:03:23 +0000 (13:03 +0000)
SSL_get_session() returns NULL.

PR: 15057
Submitted by: Otmar Lendl <lendl@nic.at>
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

CHANGES
modules/ssl/ssl_engine_vars.c

diff --git a/CHANGES b/CHANGES
index 5f5fe4f72c54547a6403bb1bdbe1aa5fb0d83a32..9e208883534252cb568ff6f263bd9230b44bedf9 100644 (file)
--- 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 <lendl nic.at>]
+
   *) mod_ssl: Fix streaming output from an nph- CGI script. PR 21944
      [Joe Orton]
 
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);