]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/entry.c
Fix strchrlen running past end of berval
[openldap] / servers / slapd / entry.c
index 6c1d45b1c41759cb244da642224be9205570bc53..93c27985b3cf116155dfdac3c73c83ea02f1bfb9 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2005 The OpenLDAP Foundation.
+ * Copyright 1998-2006 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -216,10 +216,10 @@ str2entry2( char *s, int checkvals )
                                        goto fail;
                                }
 
-                               rc = slap_bv2undef_ad( type+i, &ad, &text );
+                               rc = slap_bv2undef_ad( type+i, &ad, &text, 0 );
                                if( rc != LDAP_SUCCESS ) {
                                        Debug( LDAP_DEBUG_ANY,
-                                               "<= str2entry: str2undef_ad(%s): %s\n",
+                                               "<= str2entry: slap_str2undef_ad(%s): %s\n",
                                                        type[i].bv_val, text, 0 );
                                        goto fail;
                                }
@@ -269,23 +269,14 @@ str2entry2( char *s, int checkvals )
                                ad->ad_type->sat_syntax->ssyn_pretty;
 
                        if ( pretty ) {
-#ifdef SLAP_ORDERED_PRETTYNORM
                                rc = ordered_value_pretty( ad,
                                        &vals[i], &pval, NULL );
-#else /* ! SLAP_ORDERED_PRETTYNORM */
-                               rc = pretty( ad->ad_type->sat_syntax,
-                                       &vals[i], &pval, NULL );
-#endif /* ! SLAP_ORDERED_PRETTYNORM */
 
                        } else if ( validate ) {
                                /*
                                 * validate value per syntax
                                 */
-#ifdef SLAP_ORDERED_PRETTYNORM
-                               rc = ordered_value_validate( ad, &vals[i] );
-#else /* ! SLAP_ORDERED_PRETTYNORM */
-                               rc = validate( ad->ad_type->sat_syntax, &vals[i] );
-#endif /* ! SLAP_ORDERED_PRETTYNORM */
+                               rc = ordered_value_validate( ad, &vals[i], LDAP_MOD_ADD );
 
                        } else {
                                Debug( LDAP_DEBUG_ANY,
@@ -315,19 +306,11 @@ str2entry2( char *s, int checkvals )
                if ( ad->ad_type->sat_equality &&
                        ad->ad_type->sat_equality->smr_normalize )
                {
-#ifdef SLAP_ORDERED_PRETTYNORM
                        rc = ordered_value_normalize(
                                SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX,
                                ad,
                                ad->ad_type->sat_equality,
                                &vals[i], &nvals[i], NULL );
-#else /* ! SLAP_ORDERED_PRETTYNORM */
-                       rc = ad->ad_type->sat_equality->smr_normalize(
-                               SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX,
-                               ad->ad_type->sat_syntax,
-                               ad->ad_type->sat_equality,
-                               &vals[i], &nvals[i], NULL );
-#endif /* ! SLAP_ORDERED_PRETTYNORM */
 
                        if ( rc ) {
                                Debug( LDAP_DEBUG_ANY,
@@ -743,11 +726,11 @@ int entry_decode(struct berval *bv, Entry **e)
                if( rc != LDAP_SUCCESS ) {
                        Debug( LDAP_DEBUG_TRACE,
                                "<= entry_decode: str2ad(%s): %s\n", ptr, text, 0 );
-                       rc = slap_bv2undef_ad( &bv, &ad, &text );
+                       rc = slap_bv2undef_ad( &bv, &ad, &text, 0 );
 
                        if( rc != LDAP_SUCCESS ) {
                                Debug( LDAP_DEBUG_ANY,
-                                       "<= entry_decode: str2undef_ad(%s): %s\n",
+                                       "<= entry_decode: slap_str2undef_ad(%s): %s\n",
                                                ptr, text, 0 );
                                return rc;
                        }