From: Joe Orton Date: Wed, 8 Feb 2017 14:10:30 +0000 (+0000) Subject: Merge r1684636 from trunk: X-Git-Tag: 2.4.26~319 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=950480cda3123b9a8d65b9e848ca0a7e35daddb3;p=thirdparty%2Fapache%2Fhttpd.git Merge r1684636 from trunk: * mod_auth_digest: Use anonymous shm by default, fall back on name-based. Submitted by: jkaluza Reviewed by: jorton, ylavic, jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1782175 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 25a9c9568c0..f712649fa06 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,10 @@ Changes with Apache 2.4.26 + *) mod_auth_digest: Use an anonymous shared memory segment by default, + preventing startup failure after unclean shutdown. PR 54622. + [Jan Kaluza] + *) mod_filter: Fix AddOutputFilterByType with non-content-level filters. PR 58856. [Micha Lenk ] diff --git a/modules/aaa/mod_auth_digest.c b/modules/aaa/mod_auth_digest.c index 117caa19b8f..d998d322bcc 100644 --- a/modules/aaa/mod_auth_digest.c +++ b/modules/aaa/mod_auth_digest.c @@ -299,9 +299,18 @@ static int initialize_tables(server_rec *s, apr_pool_t *ctx) client_shm_filename = ap_runtime_dir_relative(ctx, "authdigest_shm"); client_shm_filename = ap_append_pid(ctx, client_shm_filename, "."); - /* Now create that segment */ - sts = apr_shm_create(&client_shm, shmem_size, - client_shm_filename, ctx); + /* Use anonymous shm by default, fall back on name-based. */ + sts = apr_shm_create(&client_shm, shmem_size, NULL, ctx); + if (APR_STATUS_IS_ENOTIMPL(sts)) { + /* For a name-based segment, remove it first in case of a + * previous unclean shutdown. */ + apr_shm_remove(client_shm_filename, ctx); + + /* Now create that segment */ + sts = apr_shm_create(&client_shm, shmem_size, + client_shm_filename, ctx); + } + if (APR_SUCCESS != sts) { ap_log_error(APLOG_MARK, APLOG_ERR, sts, s, APLOGNO(01762) "Failed to create shared memory segment on file %s",