From bc7057c70a877d0f71fd12d76029fc2e99abb406 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount <quanah@openldap.org> Date: Fri, 20 Feb 2009 01:14:30 +0000 Subject: [PATCH] ITS#5960 --- CHANGES | 1 + servers/slapd/overlays/rwm.c | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index a630ba93c0..5e0e502184 100644 --- a/CHANGES +++ b/CHANGES @@ -8,6 +8,7 @@ OpenLDAP 2.4.15 Release (2009/02/19) Fixed slapd-meta with entries with invalid attrs (ITS#5959) Fixed slapo-pcache caching invalid entries (ITS#5927) Fixed slapo-rwm objectClass preservation (ITS#5760) + Fixed slapo-rwm rwm_bva_rewrite handling (ITS#5960) Build Environment Fixed tester library linking for windows (ITS#5740) diff --git a/servers/slapd/overlays/rwm.c b/servers/slapd/overlays/rwm.c index f0d93ed27a..e10ee7fa13 100644 --- a/servers/slapd/overlays/rwm.c +++ b/servers/slapd/overlays/rwm.c @@ -2162,7 +2162,7 @@ rwm_cf_gen( ConfigArgs *c ) ConfigArgs ca = { 0 }; int i, last; - for ( last = 0; !BER_BVISNULL( &rwmap->rwm_bva_rewrite[ last ] ); last++ ) + for ( last = 0; rwmap->rwm_bva_rewrite && !BER_BVISNULL( &rwmap->rwm_bva_rewrite[ last ] ); last++ ) /* count'em */ ; if ( c->valx > last ) { @@ -2218,7 +2218,7 @@ rwm_cf_gen( ConfigArgs *c ) return 1; } - for ( i = c->valx; !BER_BVISNULL( &rwmap->rwm_bva_rewrite[ i ] ); i++ ) + for ( i = c->valx; rwmap->rwm_bva_rewrite && !BER_BVISNULL( &rwmap->rwm_bva_rewrite[ i ] ); i++ ) { ca.line = rwmap->rwm_bva_rewrite[ i ].bv_val; ca.argc = 0; @@ -2245,6 +2245,7 @@ rwm_cf_gen( ConfigArgs *c ) rwmap->rwm_bva_rewrite = ch_realloc( rwmap->rwm_bva_rewrite, ( last + 2 )*sizeof( struct berval ) ); + BER_BVZERO( &rwmap->rwm_bva_rewrite[last+1] ); for ( i = last - 1; i >= c->valx; i-- ) { @@ -2369,7 +2370,8 @@ rwm_db_destroy( if ( rwmap->rwm_rw ) { rewrite_info_delete( &rwmap->rwm_rw ); - ber_bvarray_free( rwmap->rwm_bva_rewrite ); + if ( rwmap->rwm_bva_rewrite ) + ber_bvarray_free( rwmap->rwm_bva_rewrite ); } avl_free( rwmap->rwm_oc.remap, rwm_mapping_dst_free ); -- GitLab