]> git.sur5r.net Git - openldap/commitdiff
ITS#5959
authorQuanah Gibson-Mount <quanah@openldap.org>
Thu, 19 Feb 2009 02:09:56 +0000 (02:09 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Thu, 19 Feb 2009 02:09:56 +0000 (02:09 +0000)
CHANGES
servers/slapd/back-meta/search.c

diff --git a/CHANGES b/CHANGES
index b8a4f183c276c994d04ae44b27f4d5cc34ba2732..a630ba93c08728bb7bdecf780e95440817db9825 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -5,6 +5,7 @@ OpenLDAP 2.4.15 Release (2009/02/19)
        Fixed slapd corrupt contextCSN (ITS#5947)
        Fixed slapd syncrepl order to match on add/delete (ITS#5954)
        Fixed slapd-bdb/hdb behavior with unallocatable shm (ITS#5956)
+       Fixed slapd-meta with entries with invalid attrs (ITS#5959)
        Fixed slapo-pcache caching invalid entries (ITS#5927)
        Fixed slapo-rwm objectClass preservation (ITS#5760)
        Build Environment
index 27bac0e438b02466fbaa007577ffbebac740a4bd..4c52831e2326c4e8dccd25d25671712202b5a9dc 100644 (file)
@@ -2080,12 +2080,17 @@ remove_oc:;
 
                        attr->a_nvals = ch_malloc( ( last + 1 ) * sizeof( struct berval ) );
                        for ( i = 0; i<last; i++ ) {
-                               attr->a_desc->ad_type->sat_equality->smr_normalize(
+                               /* if normalizer fails, forget this attr */
+                               if ( attr->a_desc->ad_type->sat_equality->smr_normalize(
                                        SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX,
                                        attr->a_desc->ad_type->sat_syntax,
                                        attr->a_desc->ad_type->sat_equality,
                                        &attr->a_vals[i], &attr->a_nvals[i],
-                                       NULL );
+                                       NULL )) {
+                                       BER_BVZERO( &attr->a_nvals[i] );
+                                       attr_free( attr );
+                                       goto next_attr;
+                               }
                        }
                        BER_BVZERO( &attr->a_nvals[i] );