From bf295cde7462dece1ddd3f2324a7073c3e613766 Mon Sep 17 00:00:00 2001
From: Quanah Gibson-Mount <quanah@openldap.org>
Date: Fri, 16 Apr 2010 00:20:09 +0000
Subject: [PATCH] ITS#6516

---
 CHANGES                          |  1 +
 servers/slapd/back-ldap/search.c | 10 +++++-----
 servers/slapd/back-meta/search.c | 10 +++++-----
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/CHANGES b/CHANGES
index a99be1c477..5146347037 100644
--- a/CHANGES
+++ b/CHANGES
@@ -21,6 +21,7 @@ OpenLDAP 2.4.22 Engineering
 	Fixed slapo-accesslog to not replicate internal purges (ITS#6519)
 	Fixed slapd-bdb contextCSN updates from updatedn (ITS#6469)
 	Fixed slapd-bdb lockobj zeroing (ITS#6501)
+	Fixed slapd-ldap/meta with ordered values (ITS#6516)
 	Fixed slapo-collect REP_ENTRY flag handling (ITS#5340,ITS#6423)
 	Fixed slapo-dds with NULL backend (ITS#6490)
 	Fixed slapo-dynlist REP_ENTRY flag handling (ITS#5340,ITS#6423)
diff --git a/servers/slapd/back-ldap/search.c b/servers/slapd/back-ldap/search.c
index a8b05326aa..e2125e82b0 100644
--- a/servers/slapd/back-ldap/search.c
+++ b/servers/slapd/back-ldap/search.c
@@ -744,12 +744,12 @@ ldap_build_entry(
 			int		rc;
 
 			if ( pretty ) {
-				rc = pretty( attr->a_desc->ad_type->sat_syntax,
+				rc = ordered_value_pretty( attr->a_desc,
 					&attr->a_vals[i], &pval, NULL );
 
 			} else {
-				rc = validate( attr->a_desc->ad_type->sat_syntax,
-					&attr->a_vals[i] );
+				rc = ordered_value_validate( attr->a_desc,
+					&attr->a_vals[i], 0 );
 			}
 
 			if ( rc != LDAP_SUCCESS ) {
@@ -793,9 +793,9 @@ ldap_build_entry(
 			for ( i = 0; i < last; i++ ) {
 				int		rc;
 
-				rc = attr->a_desc->ad_type->sat_equality->smr_normalize(
+				rc = ordered_value_normalize(
 					SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX,
-					attr->a_desc->ad_type->sat_syntax,
+					attr->a_desc,
 					attr->a_desc->ad_type->sat_equality,
 					&attr->a_vals[i], &attr->a_nvals[i],
 					NULL );
diff --git a/servers/slapd/back-meta/search.c b/servers/slapd/back-meta/search.c
index 96c6b92250..3e2930dd07 100644
--- a/servers/slapd/back-meta/search.c
+++ b/servers/slapd/back-meta/search.c
@@ -2045,12 +2045,12 @@ remove_oc:;
 				int		rc;
 
 				if ( pretty ) {
-					rc = pretty( attr->a_desc->ad_type->sat_syntax,
+					rc = ordered_value_pretty( attr->a_desc,
 						&attr->a_vals[i], &pval, NULL );
 
 				} else {
-					rc = validate( attr->a_desc->ad_type->sat_syntax,
-						&attr->a_vals[i] );
+					rc = ordered_value_validate( attr->a_desc,
+						&attr->a_vals[i], 0 );
 				}
 
 				if ( rc ) {
@@ -2085,9 +2085,9 @@ remove_oc:;
 			attr->a_nvals = ch_malloc( ( last + 1 ) * sizeof( struct berval ) );
 			for ( i = 0; i<last; i++ ) {
 				/* if normalizer fails, drop this value */
-				if ( attr->a_desc->ad_type->sat_equality->smr_normalize(
+				if ( ordered_value_normalize(
 					SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX,
-					attr->a_desc->ad_type->sat_syntax,
+					attr->a_desc,
 					attr->a_desc->ad_type->sat_equality,
 					&attr->a_vals[i], &attr->a_nvals[i],
 					NULL )) {
-- 
GitLab