ssl_mutexmode_t nMutexMode;
apr_lockmech_e nMutexMech;
const char *szMutexFile;
+ BOOL ChownMutexFile;
apr_global_mutex_t *pMutex;
apr_array_header_t *aRandSeed;
apr_hash_t *tVHostKeys;
mc->nMutexMode = SSL_MUTEXMODE_UNSET;
mc->nMutexMech = APR_LOCK_DEFAULT;
mc->szMutexFile = NULL;
+ mc->ChownMutexFile = FALSE;
mc->pMutex = NULL;
mc->aRandSeed = apr_array_make(pool, 4,
sizeof(ssl_randseed_t));
*/
mc->nMutexMode = SSL_MUTEXMODE_USED;
mc->szMutexFile = NULL;
+ mc->ChownMutexFile = FALSE;
/* NOTE: previously, 'yes' implied 'sem' */
if (!strcasecmp(meth, "default") || !strcasecmp(meth, "yes")) {
#if APR_HAS_FLOCK_SERIALIZE
else if ((!strcasecmp(meth, "flock") || !strcasecmp(meth, "file")) && file) {
mc->nMutexMech = APR_LOCK_FLOCK;
+ mc->ChownMutexFile = TRUE;
}
#endif
#if APR_HAS_POSIXSEM_SERIALIZE
"Cannot create SSLMutex");
return FALSE;
}
+ if (mc->szMutexFile && mc->ChownMutexFile == TRUE)
+ chown(mc->szMutexFile, unixd_config.user_id, -1);
#if APR_USE_SYSVSEM_SERIALIZE
rv = unixd_set_global_mutex_perms(mc->pMutex);