]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge r574884 from trunk:
authorJim Jagielski <jim@apache.org>
Thu, 13 Sep 2007 12:27:26 +0000 (12:27 +0000)
committerJim Jagielski <jim@apache.org>
Thu, 13 Sep 2007 12:27:26 +0000 (12:27 +0000)
Resolve storage of process-lifespan version strings for OpenSSL,
while using request-lifespan copies for manipulation.

Reviewed by RPleum, ZHar'El

Submitted by: wrowe
Reviewed by: jim

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x@575287 13f79535-47bb-0310-9956-ffa450edef68

STATUS
modules/ssl/ssl_engine_vars.c

diff --git a/STATUS b/STATUS
index 976ec4c9c10910fc2299742e68d896fc117102f4..257f8f6130abf7a7e210a909857d4c1011bd643a 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -116,13 +116,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-    * mod_ssl: Resolve storage of process-lifespan version strings for OpenSSL,
-      while using request-lifespan copies for manipulation
-      Trunk version of patch:
-         http://svn.apache.org/viewcvs.cgi?rev=574884&view=rev
-      Backport version for 2.0.x of patch:
-         http://people.apache.org/~wrowe/ssl_version_pool_fix-2.0.patch
-      +1: wrowe, rpluem, jim
 
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ please place SVN revisions from trunk here, so it is easy to
index 1195a82845fd1d91fa95f89d5b2c6a21f8b932ce..9eca42afa69131aef1d867e8df96831bdc5ee8cd 100644 (file)
@@ -46,7 +46,7 @@ static char *ssl_var_lookup_ssl_cert_PEM(apr_pool_t *p, X509 *xs);
 static char *ssl_var_lookup_ssl_cert_verify(apr_pool_t *p, conn_rec *c);
 static char *ssl_var_lookup_ssl_cipher(apr_pool_t *p, conn_rec *c, char *var);
 static void  ssl_var_lookup_ssl_cipher_bits(SSL *ssl, int *usekeysize, int *algkeysize);
-static char *ssl_var_lookup_ssl_version(apr_pool_t *p, char *var);
+static char *ssl_var_lookup_ssl_version(apr_pool_t *pp, apr_pool_t *p, char *var);
 
 static int ssl_is_https(conn_rec *c)
 {
@@ -166,7 +166,7 @@ char *ssl_var_lookup(apr_pool_t *p, server_rec *s, conn_rec *c, request_rec *r,
      */
     if (result == NULL) {
         if (strlen(var) > 12 && strcEQn(var, "SSL_VERSION_", 12))
-            result = ssl_var_lookup_ssl_version(p, var+12);
+            result = ssl_var_lookup_ssl_version(s->process->pool, p, var+12);
         else if (strcEQ(var, "SERVER_SOFTWARE"))
             result = (char *)ap_get_server_version();
         else if (strcEQ(var, "API_VERSION")) {
@@ -247,7 +247,8 @@ static char *ssl_var_lookup_ssl(apr_pool_t *p, conn_rec *c, char *var)
 
     ssl = sslconn->ssl;
     if (strlen(var) > 8 && strcEQn(var, "VERSION_", 8)) {
-        result = ssl_var_lookup_ssl_version(p, var+8);
+        result = ssl_var_lookup_ssl_version(c->base_server->process->pool,
+                                            p, var+8);
     }
     else if (ssl != NULL && strcEQ(var, "PROTOCOL")) {
         result = (char *)SSL_get_version(ssl);
@@ -567,7 +568,7 @@ static void ssl_var_lookup_ssl_cipher_bits(SSL *ssl, int *usekeysize, int *algke
     return;
 }
 
-static char *ssl_var_lookup_ssl_version(apr_pool_t *p, char *var)
+static char *ssl_var_lookup_ssl_version(apr_pool_t *pp, apr_pool_t *p, char *var)
 {
     static char interface[] = "mod_ssl/" MOD_SSL_VERSION;
     static char library_interface[] = SSL_LIBRARY_TEXT;
@@ -576,7 +577,7 @@ static char *ssl_var_lookup_ssl_version(apr_pool_t *p, char *var)
   
     if (!library) {
         char *cp, *cp2;
-        library = apr_pstrdup(p, SSL_LIBRARY_DYNTEXT);
+        library = apr_pstrdup(pp, SSL_LIBRARY_DYNTEXT);
         if ((cp = strchr(library, ' ')) != NULL) {
             *cp = '/';
             if ((cp2 = strchr(cp, ' ')) != NULL)