From b7c43d381d5371a4b0ca1f8b008a8ab34fd35b9e Mon Sep 17 00:00:00 2001
From: Howard Chu <hyc@openldap.org>
Date: Mon, 25 Jun 2012 12:45:32 -0700
Subject: [PATCH] ITS#7168 cleanup prev commit

---
 servers/slapd/overlays/constraint.c | 19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)

diff --git a/servers/slapd/overlays/constraint.c b/servers/slapd/overlays/constraint.c
index 538d38307f..c3f9d66abf 100644
--- a/servers/slapd/overlays/constraint.c
+++ b/servers/slapd/overlays/constraint.c
@@ -181,7 +181,7 @@ constraint_cf_gen( ConfigArgs *c )
 				}
 
 				if (cp->count || cp->size) {
-					int len = snprintf(val_buf, sizeof(val_buf), "%d", val);
+					int len = snprintf(val_buf, sizeof(val_buf), "%zd", val);
 					if (len <= 0) {
 						/* error */
 						return -1;
@@ -846,40 +846,29 @@ constraint_check_count_violation( Modifications *m, Entry *target_entry, constra
 	int j;
 
 	for ( j = 0; cp->ap[j]; j++ ) {
-		ca = 0;
-
 		/* Get this attribute count */
 		if ( target_entry )
 			ce = constraint_count_attr( target_entry, cp->ap[j] );
 
 		for( ; m; m = m->sml_next ) {
 			if ( cp->ap[j] == m->sml_desc ) {
+				ca = m->sml_numvals;
 				switch ( m->sml_op ) {
 				case LDAP_MOD_DELETE:
-					if (( b = m->sml_values ) == NULL  || b[0].bv_val == NULL ) {
+					if ( !ca || ca > ce ) {
 						ce = 0;
-					}
-					else {
+					} else {
 						/* No need to check for values' validity. Invalid values
 						 * cause the whole transaction to die anyway. */
-						for ( ca = 0; b[ca].bv_val; ++ca );
 						ce -= ca;
 					}
 					break;
 
 				case LDAP_MOD_ADD:
-					if (( b = m->sml_values ) == NULL  || b[0].bv_val == NULL )
-						continue;
-
-					for ( ca = 0; b[ca].bv_val; ++ca );
 					ce += ca;
 					break;
 
 				case LDAP_MOD_REPLACE:
-					if (( b = m->sml_values ) == NULL  || b[0].bv_val == NULL )
-						continue;
-
-					for ( ca = 0; b[ca].bv_val; ++ca );
 					ce = ca;
 					break;
 
-- 
GitLab