]> git.sur5r.net Git - openldap/commitdiff
ITS#5375
authorQuanah Gibson-Mount <quanah@openldap.org>
Fri, 15 Feb 2008 19:11:46 +0000 (19:11 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Fri, 15 Feb 2008 19:11:46 +0000 (19:11 +0000)
CHANGES
servers/slapd/back-meta/search.c
servers/slapd/overlays/rwm.c

diff --git a/CHANGES b/CHANGES
index f1c169e1afa037667a1b18c3f08532be8d162a59..e0f0388c0960fedcdef489767357e93f9f85d6dc 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -38,6 +38,7 @@ OpenLDAP 2.4.8 Engineering
        Added slapd-bdb/slapd-hdb DB encryption (ITS#5359)
        Fixed slapd-ldif delete (ITS#5265)
        Fixed slapd-meta link to slapd-ldap (ITS#5355)
+       Fixed slapd-meta setting of sm_nvalues (ITS#5375)
        Fixed slapd-monitor crash (ITS#5311)
        Fixed slapd-relay compare (ITS#4937)
        Added slapd-sock (ITS#4094)
index 70437ed6a1d5d4411140be2529163188c9d7c7f7..848b6e12ae2ac2d88c082e3685b46028fd004d89 100644 (file)
@@ -2042,7 +2042,9 @@ next_attr:;
                                        mod.sm_desc = (*ap)->a_desc;
                                        mod.sm_type = mod.sm_desc->ad_cname;
                                        mod.sm_values = (*tap)->a_vals;
-                                       mod.sm_nvalues = (*tap)->a_nvals;
+                                       if ( (*tap)->a_nvals != (*tap)->a_vals ) {
+                                               mod.sm_nvalues = (*tap)->a_nvals;
+                                       }
 
                                        (void)modify_add_values( &e, &mod,
                                                /* permissive */ 1,
index 2c1c7b344d42644fc13824b9db0585cd679dcf62..5275aa57a53961a4e14d151a88ba489a5f153e51 100644 (file)
@@ -1227,7 +1227,9 @@ cleanup_attr:;
                                        mod.sm_type = mod.sm_desc->ad_cname;
                                        mod.sm_numvals = (*tap)->a_numvals;
                                        mod.sm_values = (*tap)->a_vals;
-                                       mod.sm_nvalues = (*tap)->a_nvals;
+                                       if ( (*tap)->a_nvals != (*tap)->a_vals ) {
+                                               mod.sm_nvalues = (*tap)->a_nvals;
+                                       }
 
                                        (void)modify_add_values( &e, &mod,
                                                /* permissive */ 1,
@@ -1614,6 +1616,7 @@ rwm_db_config(
                                fname, lineno, argv[ 1 ] );
                        return 1;
                }
+
        } else if ( strcasecmp( argv[0], "normalize-mapped-attrs" ) ==  0 ) {
                if ( argc !=2 ) { 
                        fprintf( stderr,