From 7359a5413a0e9f3b056905b4b4bf01902462bbf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Str=C3=B6der?= Date: Wed, 20 Jun 2018 14:05:52 +0200 Subject: [PATCH] ITS#8866 slapo-unique to return filter used in diagnostic message --- servers/slapd/overlays/unique.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/servers/slapd/overlays/unique.c b/servers/slapd/overlays/unique.c index 9e8d3e3a5f..41c698f475 100644 --- a/servers/slapd/overlays/unique.c +++ b/servers/slapd/overlays/unique.c @@ -965,6 +965,8 @@ unique_search( slap_callback cb = { NULL, NULL, NULL, NULL }; /* XXX */ unique_counter uq = { NULL, 0 }; int rc; + char *errmsg; + int errmsgsize; Debug(LDAP_DEBUG_TRACE, "==> unique_search %s\n", key->bv_val, 0, 0); @@ -1009,9 +1011,12 @@ unique_search( Debug(LDAP_DEBUG_TRACE, "=> unique_search found %d records\n", uq.count, 0, 0); if(uq.count) { + errmsgsize = sizeof("non-unique attributes found with ") + key->bv_len; + errmsg = ch_malloc(errmsgsize); + snprintf( errmsg, errmsgsize, "non-unique attributes found with %s", key->bv_val ); op->o_bd->bd_info = (BackendInfo *) on->on_info; - send_ldap_error(op, rs, LDAP_CONSTRAINT_VIOLATION, - "some attributes not unique"); + send_ldap_error(op, rs, LDAP_CONSTRAINT_VIOLATION, errmsg); + ch_free(errmsg); return(rs->sr_err); }