X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Fliblber%2Fmemory.c;h=312ab796fdad850d79bbbb8eb82c56a8876bf268;hb=879d3dbc5eb5cdbc45c12afca1bada8207039246;hp=ac883d352320508fac10d59e8f633f3974420431;hpb=82def24b31379d4446706622d98d2ad6c05e73d1;p=openldap diff --git a/libraries/liblber/memory.c b/libraries/liblber/memory.c index ac883d3523..312ab796fd 100644 --- a/libraries/liblber/memory.c +++ b/libraries/liblber/memory.c @@ -15,13 +15,18 @@ #if LDAP_MEMORY_DEBUG struct ber_mem_hdr { union bmu_align_u { + ber_len_t bmu_len_t; + ber_tag_t bmu_tag_t; + ber_int_t bmu_int_t; + size_t bmu_size_t; void * bmu_voidp; double bmu_double; long bmu_long; + long (*bmu_funcp)( double ); char bmu_char[4]; } ber_align; -#define bm_junk ber_align.bmu_size_t +#define bm_junk ber_align.bmu_len_t #define bm_data ber_align.bmu_char[1] }; #define BER_MEM_JUNK 0xddeeddeeU @@ -42,7 +47,7 @@ void ber_int_memfree( void **p ) { assert( p != NULL ); - BER_MEM_VALID( *p ) + BER_MEM_VALID( *p ); ber_memfree( p ); @@ -59,7 +64,7 @@ ber_memfree( void *p ) return; } - BER_MEM_VALID( p ) + BER_MEM_VALID( p ); if( ber_int_memory_fns == NULL ) { #ifdef LDAP_MEMORY_DEBUG @@ -93,7 +98,7 @@ ber_memvfree( void **vec ) return; } - BER_MEM_VALID( vec ) + BER_MEM_VALID( vec ); for ( i = 0; vec[i] != NULL; i++ ) { LBER_FREE( vec[i] ); @@ -104,7 +109,7 @@ ber_memvfree( void **vec ) void * -ber_memalloc( size_t s ) +ber_memalloc( ber_len_t s ) { ber_int_options.lbo_valid = LBER_INITIALIZED; @@ -124,7 +129,7 @@ ber_memalloc( size_t s ) mh->bm_junk = BER_MEM_JUNK; - BER_MEM_VALID( &mh[1] ) + BER_MEM_VALID( &mh[1] ); return &mh[1]; #else return malloc( s ); @@ -138,7 +143,7 @@ ber_memalloc( size_t s ) void * -ber_memcalloc( size_t n, size_t s ) +ber_memcalloc( ber_len_t n, ber_len_t s ) { ber_int_options.lbo_valid = LBER_INITIALIZED; @@ -157,7 +162,7 @@ ber_memcalloc( size_t n, size_t s ) mh->bm_junk = BER_MEM_JUNK; - BER_MEM_VALID( &mh[1] ) + BER_MEM_VALID( &mh[1] ); return &mh[1]; #else return calloc( n, s ); @@ -171,7 +176,7 @@ ber_memcalloc( size_t n, size_t s ) void * -ber_memrealloc( void* p, size_t s ) +ber_memrealloc( void* p, ber_len_t s ) { ber_int_options.lbo_valid = LBER_INITIALIZED; @@ -186,7 +191,7 @@ ber_memrealloc( void* p, size_t s ) return NULL; } - BER_MEM_VALID( p ) + BER_MEM_VALID( p ); if( ber_int_memory_fns == NULL ) { #ifdef LDAP_MEMORY_DEBUG @@ -194,7 +199,7 @@ ber_memrealloc( void* p, size_t s ) ((char *)p - sizeof(struct ber_mem_hdr)); assert( mh->bm_junk == BER_MEM_JUNK ); - p = realloc( mh, s ); + p = realloc( mh, s + sizeof(struct ber_mem_hdr) ); if( p == NULL ) return NULL; @@ -202,7 +207,7 @@ ber_memrealloc( void* p, size_t s ) assert( mh->bm_junk == BER_MEM_JUNK ); - BER_MEM_VALID( &mh[1] ) + BER_MEM_VALID( &mh[1] ); return &mh[1]; #else return realloc( p, s ); @@ -224,7 +229,7 @@ ber_bvfree( struct berval *bv ) return; } - BER_MEM_VALID( bv ) + BER_MEM_VALID( bv ); if ( bv->bv_val != NULL ) LBER_FREE( bv->bv_val ); @@ -244,7 +249,7 @@ ber_bvecfree( struct berval **bv ) return; } - BER_MEM_VALID( bv ) + BER_MEM_VALID( bv ); for ( i = 0; bv[i] != NULL; i++ ) ber_bvfree( bv[i] ); @@ -280,7 +285,7 @@ ber_bvdup( return NULL; } - SAFEMEMCPY( new->bv_val, bv->bv_val, (size_t) bv->bv_len ); + SAFEMEMCPY( new->bv_val, bv->bv_val, bv->bv_len ); new->bv_val[bv->bv_len] = '\0'; new->bv_len = bv->bv_len;