From f0475bab5a930399e5408f45e51fb3ea4fe9832d Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Tue, 22 Jul 2014 20:21:35 -0700 Subject: [PATCH] ITS#7902 fix str2entry / sorted vals --- servers/slapd/entry.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/servers/slapd/entry.c b/servers/slapd/entry.c index f0da7a411d..0d6291bbbd 100644 --- a/servers/slapd/entry.c +++ b/servers/slapd/entry.c @@ -278,18 +278,6 @@ str2entry2( char *s, int checkvals ) if (( ad_prev && ad != ad_prev ) || ( i == lines )) { int j, k; - /* FIXME: we only need this when migrating from an unsorted DB */ - if ( atail != &ahead && atail->a_desc->ad_type->sat_flags & SLAP_AT_SORTED_VAL ) { - rc = slap_sort_vals( (Modifications *)atail, &text, &j, NULL ); - if ( rc == LDAP_SUCCESS ) { - atail->a_flags |= SLAP_ATTR_SORTED_VALS; - } else if ( rc == LDAP_TYPE_OR_VALUE_EXISTS ) { - Debug( LDAP_DEBUG_ANY, - "str2entry: attributeType %s value #%d provided more than once\n", - atail->a_desc->ad_cname.bv_val, j, 0 ); - goto fail; - } - } atail->a_next = attr_alloc( NULL ); atail = atail->a_next; atail->a_flags = 0; @@ -321,6 +309,18 @@ str2entry2( char *s, int checkvals ) atail->a_nvals = atail->a_vals; } attr_cnt = 0; + /* FIXME: we only need this when migrating from an unsorted DB */ + if ( atail->a_desc->ad_type->sat_flags & SLAP_AT_SORTED_VAL ) { + rc = slap_sort_vals( (Modifications *)atail, &text, &j, NULL ); + if ( rc == LDAP_SUCCESS ) { + atail->a_flags |= SLAP_ATTR_SORTED_VALS; + } else if ( rc == LDAP_TYPE_OR_VALUE_EXISTS ) { + Debug( LDAP_DEBUG_ANY, + "str2entry: attributeType %s value #%d provided more than once\n", + atail->a_desc->ad_cname.bv_val, j, 0 ); + goto fail; + } + } if ( i == lines ) break; } -- 2.39.5