]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/constraint.c
ITS#5484,ITS#5451
[openldap] / servers / slapd / overlays / constraint.c
index d56d21cc7dea6f0cd5e1bd1c631723579dd8b530..8ce8a0fc6aa722812b1aa0008d5b55336dd52cfb 100644 (file)
@@ -275,14 +275,16 @@ constraint_cf_gen( ConfigArgs *c )
                                return ( ARG_BAD_CONF );
                        }
 
-                       a2 = ch_malloc( sizeof(constraint) );
+                       a2 = ch_calloc( sizeof(constraint), 1 );
                        a2->ap_next = on->on_bi.bi_private;
                        a2->ap = ap.ap;
                        a2->re = ap.re;
                        a2->val = ap.val;
                        a2->lud = ap.lud;
-                       ber_str2bv(a2->lud->lud_dn, 0, 0, &a2->dn);
-                       ber_str2bv(a2->lud->lud_filter, 0, 0, &a2->filter);
+                       if ( a2->lud ) {
+                               ber_str2bv(a2->lud->lud_dn, 0, 0, &a2->dn);
+                               ber_str2bv(a2->lud->lud_filter, 0, 0, &a2->filter);
+                       }
                        a2->attrs = ap.attrs;
                        on->on_bi.bi_private = a2;
                        break;
@@ -378,8 +380,6 @@ constraint_violation( constraint *c, struct berval *bv, Operation *op, SlapReply
                          STRLENOF(")(|");
 
                for (i = 0; c->attrs[i]; i++) {
-                       const char *text = NULL;
-
                        len += STRLENOF("(") +
                                   c->attrs[i]->ad_cname.bv_len +
                                   STRLENOF("=") +