From: Pierangelo Masarati Date: Sat, 12 Jul 2008 16:03:31 +0000 (+0000) Subject: trim extra brackets (ITS#5609); NULL-terminate string X-Git-Tag: LOCKER_IDS~43 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=18a333bfcfb053123e1dd32e4705f0b3f649d33d;p=openldap trim extra brackets (ITS#5609); NULL-terminate string --- diff --git a/doc/man/man5/slapo-constraint.5 b/doc/man/man5/slapo-constraint.5 index 1a60c0e244..2c6a059215 100644 --- a/doc/man/man5/slapo-constraint.5 +++ b/doc/man/man5/slapo-constraint.5 @@ -72,8 +72,7 @@ constraint_attribute title uri A specification like the above would reject any .B mail attribute which did not look like -.B -@mydomain.com +.BR "@mydomain.com" . It would also reject any .B title attribute whose values were not listed in the diff --git a/servers/slapd/overlays/constraint.c b/servers/slapd/overlays/constraint.c index bb4d9504b1..09fae8e020 100644 --- a/servers/slapd/overlays/constraint.c +++ b/servers/slapd/overlays/constraint.c @@ -282,8 +282,16 @@ constraint_cf_gen( ConfigArgs *c ) if (ap.lud->lud_dn == NULL) ap.lud->lud_dn = ch_strdup(""); - if (ap.lud->lud_filter == NULL) + if (ap.lud->lud_filter == NULL) { ap.lud->lud_filter = ch_strdup("objectClass=*"); + } else if ( ap.lud->lud_filter[0] == '(' ) { + ber_len_t len = strlen( ap.lud->lud_filter ); + if ( ap.lud->lud_filter[len - 1] != ')' ) { + return( ARG_BAD_CONF ); + } + AC_MEMCPY( &ap.lud->lud_filter[0], &ap.lud->lud_filter[1], len - 2 ); + ap.lud->lud_filter[len - 2] = '\0'; + } ber_str2bv( c->argv[3], 0, 1, &ap.val ); } else { @@ -427,6 +435,7 @@ constraint_violation( constraint *c, struct berval *bv, Operation *op, SlapReply } *ptr++ = ')'; *ptr++ = ')'; + *ptr++ = '\0'; Debug(LDAP_DEBUG_TRACE, "==> constraint_violation uri filter = %s\n",