From: Hallvard Furuseth Date: Fri, 3 Dec 2010 11:44:22 +0000 (+0000) Subject: ITS#6733: Fix LDAP_MEMORY_DEBUG issues. X-Git-Tag: MIGRATION_CVS2GIT~384 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=a55d333107c1297675a8b4feecb2436a629fbf29;p=openldap ITS#6733: Fix LDAP_MEMORY_DEBUG issues. ber_memcalloc_x overflow check. Silence some compiler warnings. --- diff --git a/libraries/liblber/memory.c b/libraries/liblber/memory.c index 8712031dc5..ae063c99d1 100644 --- a/libraries/liblber/memory.c +++ b/libraries/liblber/memory.c @@ -62,9 +62,9 @@ struct ber_mem_hdr { }; /* Pattern at top of allocated space */ -#define LBER_MEM_JUNK 0xdeaddadaU +#define LBER_MEM_JUNK ((ber_int_t) 0xdeaddada) -static const struct ber_mem_hdr ber_int_mem_hdr = { LBER_MEM_JUNK, 0, 0 }; +static const struct ber_mem_hdr ber_int_mem_hdr = { LBER_MEM_JUNK }; /* Note sequence and ber_int_meminuse are counters, but are not * thread safe. If you want to use these values for multithreaded applications, @@ -256,7 +256,9 @@ ber_memcalloc_x( ber_len_t n, ber_len_t s, void *ctx ) if( ber_int_memory_fns == NULL || ctx == NULL ) { #ifdef LDAP_MEMORY_DEBUG - new = calloc(1, n*s + sizeof(struct ber_mem_hdr) + sizeof(ber_int_t)); + new = n < (-sizeof(struct ber_mem_hdr) - sizeof(ber_int_t)) / s + ? calloc(1, n*s + sizeof(struct ber_mem_hdr) + sizeof(ber_int_t)) + : NULL; if( new ) { struct ber_mem_hdr *mh = new;