From 1573d9e10c4e7f0ee1ff5a8977b45caef43b6aba Mon Sep 17 00:00:00 2001
From: Pierangelo Masarati <ando@openldap.org>
Date: Thu, 21 Apr 2005 22:16:51 +0000
Subject: [PATCH] import fix to back-monitor attribute normalization (ITS#3659)

---
 CHANGES                                |  1 +
 servers/slapd/back-monitor/backend.c   |  2 +-
 servers/slapd/back-monitor/conn.c      | 12 ++++++------
 servers/slapd/back-monitor/log.c       |  2 +-
 servers/slapd/back-monitor/operation.c |  4 ++--
 servers/slapd/back-monitor/rww.c       |  4 ++--
 servers/slapd/back-monitor/sent.c      |  8 ++++----
 7 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/CHANGES b/CHANGES
index 411817494c..50eda0e886 100644
--- a/CHANGES
+++ b/CHANGES
@@ -8,6 +8,7 @@ OpenLDAP 2.2.25 Release
 	Fixed back-dnssrv referral all but search op crasher bug (ITS#3642)
 	Fixed back-ldbm shutdown hang (ITS#3648)
 	Fixed back-meta memory leak (ITS#3669)
+	Fixed back-monitor attribute normalization bug (ITS#3659)
 	Removed broken libldap fast synchronous search result processing
 	Build Environment
 		Added improved configure logging
diff --git a/servers/slapd/back-monitor/backend.c b/servers/slapd/back-monitor/backend.c
index 5aef9d7708..8a86a6ba62 100644
--- a/servers/slapd/back-monitor/backend.c
+++ b/servers/slapd/back-monitor/backend.c
@@ -117,7 +117,7 @@ monitor_subsys_backend_init(
 			for ( j = 0; bi->bi_controls[ j ]; j++ ) {
 				bv.bv_val = bi->bi_controls[ j ];
 				bv.bv_len = strlen( bv.bv_val );
-				attr_merge_one( e, slap_schema.si_ad_supportedControl, &bv, NULL );
+				attr_merge_one( e, slap_schema.si_ad_supportedControl, &bv, &bv );
 			}
 		}
 
diff --git a/servers/slapd/back-monitor/conn.c b/servers/slapd/back-monitor/conn.c
index f4622c9c6e..19fef3af9b 100644
--- a/servers/slapd/back-monitor/conn.c
+++ b/servers/slapd/back-monitor/conn.c
@@ -100,7 +100,7 @@ monitor_subsys_conn_init(
 	
 	bv.bv_val = "0";
 	bv.bv_len = 1;
-	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, NULL );
+	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv );
 	
 	mp = ( struct monitorentrypriv * )ch_calloc( sizeof( struct monitorentrypriv ), 1 );
 	e->e_private = ( void * )mp;
@@ -164,7 +164,7 @@ monitor_subsys_conn_init(
 	
 	bv.bv_val = "0";
 	bv.bv_len = 1;
-	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, NULL );
+	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv );
 	
 	mp = ( struct monitorentrypriv * )ch_calloc( sizeof( struct monitorentrypriv ), 1 );
 	e->e_private = ( void * )mp;
@@ -398,13 +398,13 @@ conn_create(
 
 	bv.bv_val = buf;
 	bv.bv_len = strlen( buf );
-	attr_merge_one( e, mi->mi_ad_monitoredInfo, &bv, NULL );
+	attr_merge_one( e, mi->mi_ad_monitoredInfo, &bv, &bv );
 
 	/* connection number */
 	snprintf( buf, sizeof( buf ), "%ld", c->c_connid );
 	bv.bv_val = buf;
 	bv.bv_len = strlen( buf );
-	attr_merge_one( e, mi->mi_ad_monitorConnectionNumber, &bv, NULL );
+	attr_merge_one( e, mi->mi_ad_monitorConnectionNumber, &bv, &bv );
 
 	/* authz DN */
 	attr_merge_one( e, mi->mi_ad_monitorConnectionAuthzDN,
@@ -412,11 +412,11 @@ conn_create(
 
 	/* local address */
 	attr_merge_one( e, mi->mi_ad_monitorConnectionLocalAddress,
-			&c->c_sock_name, NULL );
+			&c->c_sock_name, &c->c_sock_name );
 
 	/* peer address */
 	attr_merge_one( e, mi->mi_ad_monitorConnectionPeerAddress,
-			&c->c_peer_name, NULL );
+			&c->c_peer_name, &c->c_peer_name );
 
 	mp = ( struct monitorentrypriv * )ch_calloc( sizeof( struct monitorentrypriv ), 1 );
 	e->e_private = ( void * )mp;
diff --git a/servers/slapd/back-monitor/log.c b/servers/slapd/back-monitor/log.c
index ed3c9c6c77..e4dacb34a2 100644
--- a/servers/slapd/back-monitor/log.c
+++ b/servers/slapd/back-monitor/log.c
@@ -127,7 +127,7 @@ monitor_subsys_log_init(
 		}
 	}
 
-	attr_merge( e, mi->mi_ad_description, desc, NULL );
+	attr_merge_normalize( e, mi->mi_ad_description, desc, NULL );
 
 	monitor_cache_release( mi, e );
 
diff --git a/servers/slapd/back-monitor/operation.c b/servers/slapd/back-monitor/operation.c
index 912216d661..0e90430883 100644
--- a/servers/slapd/back-monitor/operation.c
+++ b/servers/slapd/back-monitor/operation.c
@@ -77,8 +77,8 @@ monitor_subsys_ops_init(
 		return( -1 );
 	}
 
-	attr_merge_one( e_op, mi->mi_ad_monitorOpInitiated, &bv_zero, NULL );
-	attr_merge_one( e_op, mi->mi_ad_monitorOpCompleted, &bv_zero, NULL );
+	attr_merge_one( e_op, mi->mi_ad_monitorOpInitiated, &bv_zero, &bv_zero );
+	attr_merge_one( e_op, mi->mi_ad_monitorOpCompleted, &bv_zero, &bv_zero );
 
 	e_tmp = NULL;
 
diff --git a/servers/slapd/back-monitor/rww.c b/servers/slapd/back-monitor/rww.c
index 65abb64c67..aa6e63473a 100644
--- a/servers/slapd/back-monitor/rww.c
+++ b/servers/slapd/back-monitor/rww.c
@@ -97,7 +97,7 @@ monitor_subsys_rww_init(
 	
 	bv.bv_val = "0";
 	bv.bv_len = 1;
-	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, NULL );
+	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv );
 	
 	mp = ( struct monitorentrypriv * )ch_calloc( sizeof( struct monitorentrypriv ), 1 );
 	e->e_private = ( void * )mp;
@@ -158,7 +158,7 @@ monitor_subsys_rww_init(
 	
 	bv.bv_val = "0";
 	bv.bv_len = 1;
-	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, NULL );
+	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv );
 	
 	mp = ( struct monitorentrypriv * )ch_calloc( sizeof( struct monitorentrypriv ), 1 );
 	e->e_private = ( void * )mp;
diff --git a/servers/slapd/back-monitor/sent.c b/servers/slapd/back-monitor/sent.c
index 53719ed036..67291f6426 100644
--- a/servers/slapd/back-monitor/sent.c
+++ b/servers/slapd/back-monitor/sent.c
@@ -97,7 +97,7 @@ monitor_subsys_sent_init(
 	
 	bv.bv_val = "0";
 	bv.bv_len = 1;
-	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, NULL );
+	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv );
 	
 	mp = ( struct monitorentrypriv * )ch_calloc( sizeof( struct monitorentrypriv ), 1 );
 	e->e_private = ( void * )mp;
@@ -160,7 +160,7 @@ monitor_subsys_sent_init(
 
 	bv.bv_val = "0";
 	bv.bv_len = 1;
-	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, NULL );
+	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv );
 	
 	mp = ( struct monitorentrypriv * )ch_calloc( sizeof( struct monitorentrypriv ), 1 );
 	e->e_private = ( void * )mp;
@@ -223,7 +223,7 @@ monitor_subsys_sent_init(
 
 	bv.bv_val = "0";
 	bv.bv_len = 1;
-	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, NULL );
+	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv );
 	
 	mp = ( struct monitorentrypriv * )ch_calloc( sizeof( struct monitorentrypriv ), 1 );
 	e->e_private = ( void * )mp;
@@ -286,7 +286,7 @@ monitor_subsys_sent_init(
 
 	bv.bv_val = "0";
 	bv.bv_len = 1;
-	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, NULL );
+	attr_merge_one( e, mi->mi_ad_monitorCounter, &bv, &bv );
 	
 	mp = ( struct monitorentrypriv * )ch_calloc( sizeof( struct monitorentrypriv ), 1 );
 	e->e_private = ( void * )mp;
-- 
GitLab