]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Rearrange and clear global core config state allocated out of pconf
authorJoe Orton <jorton@apache.org>
Tue, 8 Dec 2020 14:27:00 +0000 (14:27 +0000)
committerJoe Orton <jorton@apache.org>
Tue, 8 Dec 2020 14:27:00 +0000 (14:27 +0000)
from a single cleanup:

* server/core.c (reset_config): Clear ap_runtime_dir here, rather than
  in register_hooks.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1884208 13f79535-47bb-0310-9956-ffa450edef68

server/config.c
server/core.c

index 8de2cec945a827f5833625a6afb043494f93b872..5f88ea5718e09642e5ebb1498f7de0d1cd194199 100644 (file)
@@ -59,7 +59,6 @@
 
 AP_DECLARE_DATA const char *ap_server_argv0 = NULL;
 AP_DECLARE_DATA const char *ap_server_root = NULL;
-AP_DECLARE_DATA const char *ap_runtime_dir = NULL;
 AP_DECLARE_DATA server_rec *ap_server_conf = NULL;
 AP_DECLARE_DATA apr_pool_t *ap_pglobal = NULL;
 
index e2855540a5a58817b89303a5b9446e91e377ebca..9f81d421f1e61c2c760e0b5b5add702c66828c87 100644 (file)
@@ -127,15 +127,18 @@ AP_DECLARE_DATA int ap_document_root_check = 1;
 /* magic pointer for ErrorDocument xxx "default" */
 static char errordocument_default;
 
+/* Global state allocated out of pconf: variables here MUST be
+ * cleared/reset in reset_config(), a pconf cleanup, to avoid the
+ * variable getting reused after the pool is cleared. */
 static apr_array_header_t *saved_server_config_defines = NULL;
 static apr_table_t *server_config_defined_vars = NULL;
+AP_DECLARE_DATA const char *ap_runtime_dir = NULL;
+static const char *core_state_dir;
 
 AP_DECLARE_DATA int ap_main_state = AP_SQ_MS_INITIAL_STARTUP;
 AP_DECLARE_DATA int ap_run_mode = AP_SQ_RM_UNKNOWN;
 AP_DECLARE_DATA int ap_config_generation = 0;
 
-static const char *core_state_dir;
-
 typedef struct {
     apr_ipsubnet_t *subnet;
     struct ap_logconf log;
@@ -1489,6 +1492,7 @@ static apr_status_t reset_config(void *dummy)
     saved_server_config_defines = NULL;
     server_config_defined_vars = NULL;
     core_state_dir = NULL;
+    ap_runtime_dir = NULL;
 
     return APR_SUCCESS;
 }
@@ -5863,7 +5867,6 @@ static int core_upgrade_storage(request_rec *r)
 
 static void register_hooks(apr_pool_t *p)
 {
-    ap_runtime_dir = NULL;
     errorlog_hash = apr_hash_make(p);
     ap_register_log_hooks(p);
     ap_register_config_hooks(p);