X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Foverlays%2Fconstraint.c;h=8ce8a0fc6aa722812b1aa0008d5b55336dd52cfb;hb=76754855e81c68071d79e7f06978c4f394ca4228;hp=d56d21cc7dea6f0cd5e1bd1c631723579dd8b530;hpb=182903d9bcf339281b77aa54195ef5de6f52cc88;p=openldap diff --git a/servers/slapd/overlays/constraint.c b/servers/slapd/overlays/constraint.c index d56d21cc7d..8ce8a0fc6a 100644 --- a/servers/slapd/overlays/constraint.c +++ b/servers/slapd/overlays/constraint.c @@ -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("=") +