***************************************************************************/
#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
+#endif\r
+\r
+/* DANGER!!!! These must be defined *BEFORE* replacements.h and the malloc() macro!!!! */
+
+#include <stdlib.h>
+#include <strings.h>
+/* \r
+ * clear_malloc\r
+ *\r
+ * will alloc memory and clear it\r
+ */
+void *clear_malloc(size_t size)
+{
+ void *t = malloc(size);
+ if (t!=NULL)
+ {
+ memset(t, 0x00, size);
+ }
+ return t;
+}
+
+void *fill_malloc(size_t size)
+{
+ void *t = malloc(size);
+ if (t!=NULL)
+ {
+ /* We want to initialize memory to some known bad state. */
+ /* 0 and 0xff yields 0 and -1 as integers, which often */
+ /* have meaningful values. 0x5555... is not often a valid */
+ /* integer and is quite easily spotted in the debugger */
+ /* also it is almost certainly an invalid address */
+ memset(t, 0x55, size);
+ }
+ return t;
+}
#include "replacements.h"
};
extern int gettimeofday(struct timeval *tv, struct timezone *tz);
-#endif
+#endif\r
+\r
+/**** clear_malloc & fill_malloc ****/
+void *clear_malloc(size_t size);
+void *fill_malloc(size_t size);
+\r
+/*\r
+ * Now you have 3 ways for the malloc function:\r
+ *\r
+ * 1. Do not change anything, use the original malloc\r
+ *\r
+ * 2. Use the clear_malloc function instead of the original malloc.\r
+ * In this case you must use the following define:\r
+ * #define malloc((_a)) clear_malloc((_a))\r
+ *\r
+ * 3. Use the fill_malloc function instead of the original malloc.\r
+ * In this case you must use the following define:\r
+ * #define malloc((_a)) fill_malloc((_a))\r
+ *\r
+ * We have figured out that there could exist some malloc problems\r
+ * where variables are using without to be initialise. To find this\r
+ * places, use the fill_malloc function. With this function we want \r
+ * to initialize memory to some known bad state. This is quite easily \r
+ * spotted in the debugger and will trap to an invalid address. \r
+ *\r
+ * clear_malloc can be used if you want to set not initialise \r
+ * variable to 0.\r
+ *\r
+ * If you do not want to change the malloc function, to not use one of\r
+ * the following macros. Which is the default way.\r
+ */\r
+//#define malloc((_a)) clear_malloc((_a))
+//#define malloc((_a)) fill_malloc((_a))
/* GNU extensions to the C library that may be missing on some systems */
#ifndef HAVE_STRNDUP