From 2f63454973614a6dc41d9ab2032b2ab2de2902ac Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Thu, 3 Nov 2005 15:08:23 +0000 Subject: [PATCH] don't leak on exit --- servers/slapd/back-monitor/init.c | 8 ++++++++ servers/slapd/back-monitor/rww.c | 25 ++++++++++++++++++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/servers/slapd/back-monitor/init.c b/servers/slapd/back-monitor/init.c index 50cb2b44c1..a13056cdf6 100644 --- a/servers/slapd/back-monitor/init.c +++ b/servers/slapd/back-monitor/init.c @@ -1855,6 +1855,14 @@ monitor_back_db_destroy( if ( !BER_BVISNULL( &monitor_subsys[ i ]->mss_rdn ) ) { ch_free( monitor_subsys[ i ]->mss_rdn.bv_val ); } + + if ( !BER_BVISNULL( &monitor_subsys[ i ]->mss_dn ) ) { + ch_free( monitor_subsys[ i ]->mss_dn.bv_val ); + } + + if ( !BER_BVISNULL( &monitor_subsys[ i ]->mss_ndn ) ) { + ch_free( monitor_subsys[ i ]->mss_ndn.bv_val ); + } } ch_free( monitor_subsys ); diff --git a/servers/slapd/back-monitor/rww.c b/servers/slapd/back-monitor/rww.c index 0edea5d079..a0e5371425 100644 --- a/servers/slapd/back-monitor/rww.c +++ b/servers/slapd/back-monitor/rww.c @@ -28,6 +28,11 @@ #include "lutil.h" #include "back-monitor.h" +static int +monitor_subsys_rww_destroy( + BackendDB *be, + monitor_subsys_t *ms ); + static int monitor_subsys_rww_update( Operation *op, @@ -41,7 +46,7 @@ enum { MONITOR_RWW_LAST }; -struct monitor_rww_t { +static struct monitor_rww_t { struct berval rdn; struct berval nrdn; } monitor_rww[] = { @@ -53,8 +58,7 @@ struct monitor_rww_t { int monitor_subsys_rww_init( BackendDB *be, - monitor_subsys_t *ms -) + monitor_subsys_t *ms ) { monitor_info_t *mi; @@ -64,6 +68,7 @@ monitor_subsys_rww_init( assert( be != NULL ); + ms->mss_destroy = monitor_subsys_rww_destroy; ms->mss_update = monitor_subsys_rww_update; mi = ( monitor_info_t * )be->be_private; @@ -147,6 +152,20 @@ monitor_subsys_rww_init( return( 0 ); } +static int +monitor_subsys_rww_destroy( + BackendDB *be, + monitor_subsys_t *ms ) +{ + int i; + + for ( i = 0; i < MONITOR_RWW_LAST; i++ ) { + ber_memfree_x( monitor_rww[ i ].nrdn.bv_val, NULL ); + } + + return 0; +} + static int monitor_subsys_rww_update( Operation *op, -- 2.39.5