]> granicus.if.org Git - apache/commitdiff
In maintainer mode, replace apr_palloc with a version that
authorStefan Fritsch <sf@apache.org>
Fri, 24 Feb 2012 20:47:01 +0000 (20:47 +0000)
committerStefan Fritsch <sf@apache.org>
Fri, 24 Feb 2012 20:47:01 +0000 (20:47 +0000)
initializes the allocated memory with non-zero values, except if
AP_DEBUG_NO_ALLOC_POISON is defined.

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

CHANGES
include/ap_mmn.h
include/httpd.h
server/util_debug.c

diff --git a/CHANGES b/CHANGES
index 53ab3571b73e9aa1e4c8aaac345397d3b28a7d30..84a1c59d0dfd59d750a981457f04bc4a10894fbe 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,10 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.0
 
+  *) core: In maintainer mode, replace apr_palloc with a version that
+     initializes the allocated memory with non-zero values, except if
+     AP_DEBUG_NO_ALLOC_POISON is defined.
+
   *) mod_log_config: Check during config test that directories for access logs
      exist. PR 29941. [Stefan Fritsch]
 
index e77690da84350baaec568a463cae71b92fbe7ca1..7290324eb20fe0076c2ae899429fbe475eb5ec96 100644 (file)
  * 20120204.0 (2.5.0-dev)  Remove ap_create_core_ctx(), ap_core_ctx_get_bb();
  *                         add insert_network_bucket hook, AP_DECLINED
  * 20120211.0 (2.5.0-dev)  Change re_nsub in ap_regex_t from apr_size_t to int.
+ * 20120211.0 (2.5.0-dev)  Add ap_palloc_debug, ap_pcalloc_debug
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503235UL /* "AP25" */
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
 #define MODULE_MAGIC_NUMBER_MAJOR 20120211
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 0                   /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 1                   /* 0...n */
 
 /**
  * Determine if the server's current MODULE_MAGIC_NUMBER is at least a
index 6ffdef2e173dec6d9b043945ce2e069d1c89883a..82a3fff7ff2a099f509fd666dafb78b2ea754f5e 100644 (file)
@@ -2068,6 +2068,8 @@ AP_DECLARE(char *) ap_strrchr(char *s, int c);
 AP_DECLARE(const char *) ap_strrchr_c(const char *s, int c);
 AP_DECLARE(char *) ap_strstr(char *s, const char *c);
 AP_DECLARE(const char *) ap_strstr_c(const char *s, const char *c);
+AP_DECLARE(void *) ap_palloc_debug(apr_pool_t *p, apr_size_t size);
+AP_DECLARE(void *) ap_pcalloc_debug(apr_pool_t *p, apr_size_t size);
 
 #ifdef AP_DEBUG
 
@@ -2078,6 +2080,21 @@ AP_DECLARE(const char *) ap_strstr_c(const char *s, const char *c);
 #undef strstr
 # define strstr(s, c)  ap_strstr(s,c)
 
+#ifndef AP_DEBUG_NO_ALLOC_POISON
+/*
+ * ap_palloc_debug initializes allocated memory to non-zero
+ */
+#define apr_palloc     ap_palloc_debug
+/*
+ * this is necessary to avoid useless double memset of memory
+ * with ap_palloc_debug
+ */
+#ifdef apr_pcalloc
+#undef apr_pcalloc
+#endif
+#define apr_pcalloc    ap_pcalloc_debug
+#endif
+
 #else
 
 /** use this instead of strchr */
index 41250da62b5953c959c8b5cee6397f6e13c0f185..52f9415bbdcf9ca29f20e50305e8ebc11379d840 100644 (file)
@@ -223,3 +223,20 @@ AP_DECLARE(void) ap_set_core_module_config(ap_conf_vector_t *cv, void *val)
 {
     ((void **)cv)[AP_CORE_MODULE_INDEX] = val;
 }
+
+#if defined(apr_palloc)
+#undef apr_palloc
+#endif
+AP_DECLARE(void *) ap_palloc_debug(apr_pool_t *p, apr_size_t size)
+{
+    /* poison uninitialized memory */
+    return memset(apr_palloc(p, size), 0xEE, size);
+}
+
+#if defined(apr_pcalloc)
+#undef apr_pcalloc
+#endif
+AP_DECLARE(void *) ap_pcalloc_debug(apr_pool_t *p, apr_size_t size)
+{
+    return memset(apr_palloc(p, size), 0, size);
+}