]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/dn.c
Berkeley DB 4.2 support (DB 4.2 required by default)
[openldap] / servers / slapd / dn.c
index 3adfe06301f04a6ca8ea3ae75ecbc30df546d3fd..348336f8a6da866d0bb10f42fb12ee951175ab20 100644 (file)
@@ -314,7 +314,7 @@ LDAPDN_rewrite( LDAPDN dn, unsigned flags, void *ctx )
                                 *      if value is empty, use empty_bv
                                 */
                                rc = ( *normf )(
-                                       0,
+                                       SLAP_MR_VALUE_OF_ASSERTION_SYNTAX,
                                        ad->ad_type->sat_syntax,
                                        mr,
                                        ava->la_value.bv_len
@@ -329,8 +329,10 @@ LDAPDN_rewrite( LDAPDN dn, unsigned flags, void *ctx )
 
 
                        if( bv.bv_val ) {
-                               ber_memfree_x( ava->la_value.bv_val, ctx );
+                               if ( ava->la_flags & LDAP_AVA_FREE_VALUE )
+                                       ber_memfree_x( ava->la_value.bv_val, ctx );
                                ava->la_value = bv;
+                               ava->la_flags |= LDAP_AVA_FREE_VALUE;
                        }
 
                        if( do_sort ) AVA_Sort( rdn, iAVA );