You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2002/01/11 07:05:18 UTC
cvs commit: httpd-2.0/modules/ssl mod_ssl.h ssl_engine_init.c ssl_engine_mutex.c
wrowe 02/01/10 22:05:18
Modified: modules/ssl mod_ssl.h ssl_engine_init.c ssl_engine_mutex.c
Log:
The mutex must be pool-managed, not ssl managed. We are encountering
segfaults on Win32 when the cleanup of the mutex occurs after the pool
was destroyed.
Revision Changes Path
1.53 +0 -1 httpd-2.0/modules/ssl/mod_ssl.h
Index: mod_ssl.h
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/ssl/mod_ssl.h,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- mod_ssl.h 10 Jan 2002 04:55:19 -0000 1.52
+++ mod_ssl.h 11 Jan 2002 06:05:18 -0000 1.53
@@ -733,7 +733,6 @@
int ssl_mutex_reinit(server_rec *, apr_pool_t *);
int ssl_mutex_on(server_rec *);
int ssl_mutex_off(server_rec *);
-int ssl_mutex_kill(server_rec *);
/* Logfile Support */
void ssl_log_open(server_rec *, server_rec *, apr_pool_t *);
1.24 +3 -5 httpd-2.0/modules/ssl/ssl_engine_init.c
Index: ssl_engine_init.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_engine_init.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- ssl_engine_init.c 10 Jan 2002 04:55:19 -0000 1.23
+++ ssl_engine_init.c 11 Jan 2002 06:05:18 -0000 1.24
@@ -970,9 +970,9 @@
/* XXX: there should be an ap_srand() function */
srand((unsigned int)time(NULL));
- /* open the mutex lockfile */
- ssl_mutex_reinit(s, p);
- return;
+ /* open the mutex lockfile */
+ ssl_mutex_reinit(s, p);
+ return;
}
apr_status_t ssl_init_ChildKill(void *data)
@@ -991,8 +991,6 @@
* Drop the session cache and mutex
*/
ssl_scache_kill(s);
-
- ssl_mutex_kill(s);
/*
* Destroy the temporary keys and params
1.9 +2 -15 httpd-2.0/modules/ssl/ssl_engine_mutex.c
Index: ssl_engine_mutex.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_engine_mutex.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ssl_engine_mutex.c 9 Jan 2002 22:21:34 -0000 1.8
+++ ssl_engine_mutex.c 11 Jan 2002 06:05:18 -0000 1.9
@@ -68,6 +68,7 @@
if (mc->nMutexMode == SSL_MUTEXMODE_NONE)
return TRUE;
+
if (apr_lock_create(&mc->pMutex, APR_MUTEX, APR_LOCKALL, APR_LOCK_DEFAULT,
mc->szMutexFile, p) != APR_SUCCESS)
return FALSE;
@@ -80,6 +81,7 @@
if (mc->nMutexMode == SSL_MUTEXMODE_NONE)
return TRUE;
+
if (apr_lock_child_init(&mc->pMutex, mc->szMutexFile, p) != APR_SUCCESS)
return FALSE;
return TRUE;
@@ -108,21 +110,6 @@
ssl_log(s, SSL_LOG_WARN, "Failed to release global mutex lock");
return FALSE;
}
- return TRUE;
-}
-
-int ssl_mutex_kill(server_rec *s)
-{
- SSLModConfigRec *mc = myModConfig(s);
-
- if (mc->nMutexMode == SSL_MUTEXMODE_NONE)
- return TRUE;
- /* XXX: currently mutex is not created until 2nd pass at startup */
- if (!mc->pMutex)
- return TRUE;
- if (apr_lock_destroy(mc->pMutex) != APR_SUCCESS)
- return FALSE;
- mc->pMutex = NULL;
return TRUE;
}