; /* NULL */
if ( *vals == NULL ) {
- *vals = (BerVarray) ch_malloc( (nn + 1)
+ *vals = (BerVarray) SLAP_MALLOC( (nn + 1)
* sizeof(struct berval) );
+ if( *vals == NULL ) {
+#ifdef NEW_LOGGING
+ LDAP_LOG( OPERATION, ERR,
+ "value_add: SLAP_MALLOC failed.\n", 0, 0, 0 );
+#else
+ Debug(LDAP_DEBUG_TRACE,
+ "value_add: SLAP_MALLOC failed.\n", 0, 0, 0 );
+#endif
+ return LBER_ERROR_MEMORY;
+ }
n = 0;
} else {
for ( n = 0; (*vals)[n].bv_val != NULL; n++ ) {
; /* Empty */
}
- *vals = (BerVarray) ch_realloc( (char *) *vals,
+ *vals = (BerVarray) SLAP_REALLOC( (char *) *vals,
(n + nn + 1) * sizeof(struct berval) );
+ if( *vals == NULL ) {
+#ifdef NEW_LOGGING
+ LDAP_LOG( OPERATION, ERR,
+ "value_add: SLAP_MALLOC failed.\n", 0, 0, 0 );
+#else
+ Debug(LDAP_DEBUG_TRACE,
+ "value_add: SLAP_MALLOC failed.\n", 0, 0, 0 );
+#endif
+ return LBER_ERROR_MEMORY;
+ }
}
v2 = *vals + n;
BerVarray v2;
if ( *vals == NULL ) {
- *vals = (BerVarray) ch_malloc( 2 * sizeof(struct berval) );
+ *vals = (BerVarray) SLAP_MALLOC( 2 * sizeof(struct berval) );
+ if( *vals == NULL ) {
+#ifdef NEW_LOGGING
+ LDAP_LOG( OPERATION, ERR,
+ "value_add_one: SLAP_MALLOC failed.\n", 0, 0, 0 );
+#else
+ Debug(LDAP_DEBUG_TRACE,
+ "value_add_one: SLAP_MALLOC failed.\n", 0, 0, 0 );
+#endif
+ return LBER_ERROR_MEMORY;
+ }
n = 0;
} else {
for ( n = 0; (*vals)[n].bv_val != NULL; n++ ) {
; /* Empty */
}
- *vals = (BerVarray) ch_realloc( (char *) *vals,
+ *vals = (BerVarray) SLAP_REALLOC( (char *) *vals,
(n + 2) * sizeof(struct berval) );
+ if( *vals == NULL ) {
+#ifdef NEW_LOGGING
+ LDAP_LOG( OPERATION, ERR,
+ "value_add_one: SLAP_MALLOC failed.\n", 0, 0, 0 );
+#else
+ Debug(LDAP_DEBUG_TRACE,
+ "value_add_one: SLAP_MALLOC failed.\n", 0, 0, 0 );
+#endif
+ return LBER_ERROR_MEMORY;
+ }
}
v2 = *vals + n;
struct berval nv1 = { 0, NULL };
struct berval nv2 = { 0, NULL };
+ assert( mr != NULL );
+
if( !mr->smr_match ) {
return LDAP_INAPPROPRIATE_MATCHING;
}
int i;
int rc;
struct berval nval = { 0, NULL };
- struct berval nval_tmp;
MatchingRule *mr = ad->ad_type->sat_equality;
if( mr == NULL || !mr->smr_match ) {
flags |= SLAP_MR_VALUE_SYNTAX_CONVERTED_MATCH;
}
- if( mr->smr_syntax->ssyn_normalize ) {
+ if( !(flags & SLAP_MR_VALUE_NORMALIZED_MATCH) &&
+ mr->smr_syntax->ssyn_normalize ) {
+ struct berval nval_tmp = { 0, NULL };
+
rc = mr->smr_syntax->ssyn_normalize(
- mr->smr_syntax, nval.bv_val == NULL ? val : &nval, &nval_tmp );
+ mr->smr_syntax,
+ nval.bv_val == NULL ? val : &nval, &nval_tmp );
free(nval.bv_val);
nval = nval_tmp;