From: Yann Ylavic Date: Fri, 22 Sep 2017 12:31:54 +0000 (+0000) Subject: config: follow up to r1809302. X-Git-Tag: 2.5.0-alpha~103 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=22b024abd86ba6d5c105bf6d1ab9618d53793ea3;p=thirdparty%2Fapache%2Fhttpd.git config: follow up to r1809302. We need to check that the module itself is at the right version. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1809305 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/include/http_config.h b/include/http_config.h index 9adfcbf9a73..cfc0c3233cd 100644 --- a/include/http_config.h +++ b/include/http_config.h @@ -333,8 +333,11 @@ struct cmd_parms_struct { ap_directive_t *parent; }; -#define AP_MODULE_HAS_FLAGS \ - AP_MODULE_MAGIC_AT_LEAST(20161018,7) +#define AP_MODULE_FLAGS_MMN_MAJOR 20161018 +#define AP_MODULE_FLAGS_MMN_MINOR 7 +#define AP_MODULE_HAS_FLAGS(m) \ + AP_MODULE_MAGIC_AT_LEAST(AP_MODULE_FLAGS_MMN_MAJOR, \ + AP_MODULE_FLAGS_MMN_MINOR) #if AP_MODULE_HAS_FLAGS /** * Flags associated with a module. diff --git a/server/config.c b/server/config.c index 74674a52fcc..12552c6474b 100644 --- a/server/config.c +++ b/server/config.c @@ -339,8 +339,14 @@ static void merge_server_configs(apr_pool_t *p, ap_conf_vector_t *base, if (!virt_vector[i]) { #if AP_MODULE_HAS_FLAGS - if (df && modp->create_server_config - && modp->flags & AP_MODULE_FLAG_ALWAYS_MERGE) { + if (df + && modp->create_server_config + && (modp->version > AP_MODULE_FLAGS_MMN_MAJOR + || (modp->version == AP_MODULE_FLAGS_MMN_MAJOR + && (modp->minor_version >= + AP_MODULE_FLAGS_MMN_MINOR))) + /* keep this after version checks (flags out-of-bound) */ + && (modp->flags & AP_MODULE_FLAG_ALWAYS_MERGE)) { virt_vector[i] = (*modp->create_server_config)(p, virt); } else