You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by jo...@apache.org on 2004/01/12 11:51:45 UTC

cvs commit: httpd-2.0/modules/ssl ssl_engine_vars.c

jorton      2004/01/12 02:51:44

  Modified:    modules/ssl ssl_engine_vars.c
  Log:
  * 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)
  
  Revision  Changes    Path
  1.30      +6 -4      httpd-2.0/modules/ssl/ssl_engine_vars.c
  
  Index: ssl_engine_vars.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_engine_vars.c,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -b -d -u -r1.29 -r1.30
  --- ssl_engine_vars.c	1 Jan 2004 13:26:21 -0000	1.29
  +++ ssl_engine_vars.c	12 Jan 2004 10:51:44 -0000	1.30
  @@ -281,10 +281,12 @@
       else if (ssl != NULL && strcEQ(var, "SESSION_ID")) {
           char buf[SSL_SESSION_ID_STRING_LEN];
           SSL_SESSION *pSession = SSL_get_session(ssl);
  +        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);