Last time I checked that problem I believe it was due to hashing the uninitialized padding bytes within the bounds of a struct. I don't remember the details but I believe it was harmless.
/ Jonas Walldén
Previous text:
2003-10-02 17:42: Subject: valgrind
I recompiled with dmalloc though and got tons of printouts...
It appears that DO_HASHMEM reads outside of its buffer. Is this a good fix?
diff -c -r1.46 pike_memory.h *** pike_memory.h 13 May 2003 19:34:31 -0000 1.46 --- pike_memory.h 2 Oct 2003 15:21:39 -0000
*** 191,196 **** --- 191,198 ---- #endif /* sizeof(char *) == 4 */
/* NB: RET should be an lvalue of type size_t. */
- /* NB2: A is evaluated twice (since that is usually a compile
- time operation compared to adjusting a). */
#define DO_HASHMEM(RET, A, LEN, MLEN) \ do { \ const unsigned char *a = A; \
*** 230,236 **** DO_IF_ELSE_UNALIGNED_MEMORY_ACCESS( \ { \ size_t *b; \ ! b=(size_t *)a; \ \ for(DIVIDE_BY_2_CHAR_P(mlen);mlen--;) \ { \ --- 232,238 ---- DO_IF_ELSE_UNALIGNED_MEMORY_ACCESS( \ { \ size_t *b; \ ! b=(size_t *)A; \ \ for(DIVIDE_BY_2_CHAR_P(mlen);mlen--;) \ { \
/ Martin Nilsson (saturator)