Changes with Apache 2.0.37
+ *) Synced with remaining changes from mod_ssl 2.8.8-1.3.24:
+ - Avoid SIGBUS on sparc machines with SHMCB session caches
+ - Allow whitespace between the pipe and the name of the
+ program in SSLLog "| /path/to/program". [Cliff Woolley]
+
*) Introduce mod_ext_filter and mod_deflate experimental modules
to the Win32 build (zlib sources must be in srclib\zlib.)
[William Rowe]
return;
else if (sc->log_file_name[0] == '|') {
szLogFile = sc->log_file_name + 1;
+ while (*szLogFile == ' ' || *szLogFile == '\t')
+ szLogFile++;
if ((pl = ap_open_piped_log(p, szLogFile)) == NULL) {
ssl_log(s, SSL_LOG_ERROR|SSL_ADD_ERRNO,
"Cannot open reliable pipe to SSL logfile filter %s", szLogFile);
/* This is necessary simply so that the size passed to memset() is not a
* compile-time constant, preventing the compiler from optimising it. */
-#if 0
-/* XXX: this isn't used, is it needed? */
static void shmcb_safe_clear(void *ptr, size_t size)
{
memset(ptr, 0, size);
}
-#endif
/* Underlying functions for session-caching */
static BOOL shmcb_init_memory(server_rec *, void *, unsigned int);
mc->nSessionCacheDataSize,
mc->szSessionCacheDataFile,
mc->pPool)) != APR_SUCCESS) {
+ char buf[100];
ssl_log(s, SSL_LOG_ERROR,
- "Cannot allocate shared memory: %d", rv);
+ "Cannot allocate shared memory: (%d)%s", rv,
+ apr_strerror(rv, buf, sizeof(buf)));
ssl_die();
}
apr_shm_baseaddr_get(mc->pSessionCacheDataMM),
mc->nSessionCacheDataSize,
mc->pPool)) != APR_SUCCESS) {
+ char buf[100];
ssl_log(s, SSL_LOG_ERROR,
- "Cannot initialize rmm: %d", rv);
+ "Cannot initialize rmm: (%d)%s", rv,
+ apr_strerror(rv, buf, sizeof(buf)));
ssl_die();
}
"internal error");
return FALSE;
}
- memset(idx, 0, sizeof(SHMCBIndex));
+ shmcb_safe_clear(idx, sizeof(SHMCBIndex));
shmcb_set_safe_time(&(idx->expires), expiry_time);
shmcb_set_safe_uint(&(idx->offset), new_offset);