From: Joe Orton Date: Thu, 13 Aug 2026 15:16:10 +0000 (+0000) Subject: * modules/aaa/mod_auth_digest.c: Fail the build without APR_HAS_RANDOM X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=37d73119bc308117fe2bc3e965832b36ebc39362;p=thirdparty%2Fapache%2Fhttpd.git * modules/aaa/mod_auth_digest.c: Fail the build without APR_HAS_RANDOM or APR_HAS_SHARED_MEMORY, rather than testing at runtime. configure already declines to build the module without them. Assisted-by: Claude Opus 5 (1M context) GitHub: PR #705 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1937111 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/aaa/mod_auth_digest.c b/modules/aaa/mod_auth_digest.c index 8538740c37..a8725c5bef 100644 --- a/modules/aaa/mod_auth_digest.c +++ b/modules/aaa/mod_auth_digest.c @@ -81,6 +81,12 @@ #include #endif +/* configure declines to build this module without both of these, so this + * only catches builds which don't use it. */ +#if !APR_HAS_RANDOM || !APR_HAS_SHARED_MEMORY +#error mod_auth_digest requires APR with random and shared memory support +#endif + /* struct to hold the configuration info */ typedef struct digest_config_struct { @@ -364,12 +370,6 @@ static int pre_init(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp) apr_status_t rv; void *retained; - if (!APR_HAS_SHARED_MEMORY) { - ap_log_error(APLOG_MARK, APLOG_CRIT, rv, NULL, APLOGNO(10590) - "mod_auth_digest cannot be used on platforms without shared memory support"); - return !OK; - } - rv = ap_mutex_register(pconf, client_mutex_type, NULL, APR_LOCK_DEFAULT, 0); if (rv != APR_SUCCESS) return !OK; @@ -379,11 +379,7 @@ static int pre_init(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp) retained = ap_retained_data_create(RETAINED_DATA_ID, SECRET_LEN); ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, NULL, APLOGNO(01757) "generating secret for digest authentication"); -#if APR_HAS_RANDOM rv = apr_generate_random_bytes(retained, SECRET_LEN); -#else -#error APR random number support is missing -#endif if (rv != APR_SUCCESS) { ap_log_error(APLOG_MARK, APLOG_CRIT, rv, NULL, APLOGNO(01758) "error generating secret");