Commit f0eaddfe authored by Stefan Fritsch's avatar Stefan Fritsch
Browse files

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
parent 515b7ca1
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
                                                         -*- 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]

+2 −1
Original line number Diff line number Diff line
@@ -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
+17 −0
Original line number Diff line number Diff line
@@ -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 */
+17 −0
Original line number Diff line number Diff line
@@ -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);
}