diff --git a/modules/ssl/ssl_engine_mutex.c b/modules/ssl/ssl_engine_mutex.c index 2e3efca15d..ae4e3c4643 100644 --- a/modules/ssl/ssl_engine_mutex.c +++ b/modules/ssl/ssl_engine_mutex.c @@ -88,16 +88,25 @@ int ssl_mutex_init(server_rec *s, apr_pool_t *p) "Cannot create SSLMutex"); return FALSE; } +#if APR_HAS_FLOCK_SERIALIZE if (mc->szMutexFile && mc->ChownMutexFile == TRUE) chown(mc->szMutexFile, unixd_config.user_id, -1); +#endif +#if APR_HAS_SYSVSEM_SERIALIZE #if APR_USE_SYSVSEM_SERIALIZE - rv = unixd_set_global_mutex_perms(mc->pMutex); - if (rv != APR_SUCCESS) { - ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, - "Could not set permissions on ssl_mutex; check User " - "and Group directives"); - return FALSE; + if (mc->nMutexMech == APR_LOCK_DEFAULT || + mc->nMutexMech == APR_LOCK_SYSVSEM) { +#else + if (mc->nMutexMech == APR_LOCK_SYSVSEM) { +#endif + rv = unixd_set_global_mutex_perms(mc->pMutex); + if (rv != APR_SUCCESS) { + ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, + "Could not set permissions on ssl_mutex; check User " + "and Group directives"); + return FALSE; + } } #endif return TRUE;