diff options
author | Stefan Fritsch <sf@apache.org> | 2012-02-24 20:47:01 +0000 |
---|---|---|
committer | Stefan Fritsch <sf@apache.org> | 2012-02-24 20:47:01 +0000 |
commit | 401b5be56210a52147091abe49e9d7a111634fe7 (patch) | |
tree | ed1c8546fc9abea2f09917d43c0a2e0df8b00ed6 | |
parent | 3c92125e3a26dc9ceb0b51a0f47876e9534546bf (diff) | |
download | httpd-401b5be56210a52147091abe49e9d7a111634fe7.tar.gz |
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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1293408 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | include/ap_mmn.h | 3 | ||||
-rw-r--r-- | include/httpd.h | 17 | ||||
-rw-r--r-- | server/util_debug.c | 17 |
4 files changed, 40 insertions, 1 deletions
@@ -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] diff --git a/include/ap_mmn.h b/include/ap_mmn.h index e77690da84..7290324eb2 100644 --- a/include/ap_mmn.h +++ b/include/ap_mmn.h @@ -393,6 +393,7 @@ * 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" */ @@ -400,7 +401,7 @@ #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 diff --git a/include/httpd.h b/include/httpd.h index 6ffdef2e17..82a3fff7ff 100644 --- a/include/httpd.h +++ b/include/httpd.h @@ -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 */ diff --git a/server/util_debug.c b/server/util_debug.c index 41250da62b..52f9415bbd 100644 --- a/server/util_debug.c +++ b/server/util_debug.c @@ -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); +} |