]> git.sur5r.net Git - openldap/commitdiff
Fix potential attr_merge_normalize() crasher
authorLuke Howard <lukeh@openldap.org>
Thu, 24 Apr 2003 11:14:57 +0000 (11:14 +0000)
committerLuke Howard <lukeh@openldap.org>
Thu, 24 Apr 2003 11:14:57 +0000 (11:14 +0000)
servers/slapd/attr.c

index 8a1121ce034241998480900e8cd92b5428482e3c..8eaed0fc7bb716e774524f3caabbebaa1e6d35ec 100644 (file)
@@ -162,10 +162,10 @@ attr_merge_normalize(
        BerVarray       nvals = NULL;
        int             rc;
 
-       if ( desc->ad_type->sat_equality->smr_normalize ) {
+       if ( desc->ad_type->sat_equality && desc->ad_type->sat_equality->smr_normalize ) {
                int     i;
                
-               for ( i = 0; vals[i].bv_val; i++);
+               for ( i = 0; vals[i].bv_val; i++ );
 
                nvals = ch_calloc( sizeof(struct berval), i + 1 );
                for ( i = 0; vals[i].bv_val; i++ ) {
@@ -186,7 +186,9 @@ attr_merge_normalize(
        rc = attr_merge( e, desc, vals, nvals );
 
 error_return:;
-       ber_bvarray_free( nvals );
+       if ( nvals != NULL ) {
+               ber_bvarray_free( nvals );
+       }
        return rc;
 }