Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Maintenance:14158
openldap2.openSUSE_Leap_15.1_Update
0001-ITS-8866-slapo-unique-to-return-filter-use...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-ITS-8866-slapo-unique-to-return-filter-used-in-diagn.patch of Package openldap2.openSUSE_Leap_15.1_Update
From 348588561c694784a8106871b0d5fe578007ea4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Str=C3=B6der?= <michael@stroeder.com> Date: Fri, 26 Oct 2018 16:40:23 +0200 Subject: [PATCH] ITS#8866 slapo-unique to return filter used in diagnostic message --- servers/slapd/overlays/unique.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/servers/slapd/overlays/unique.c b/servers/slapd/overlays/unique.c index ed62d03b8..a7723cf5d 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); @@ -998,24 +1000,29 @@ unique_search( nop->o_bd = on->on_info->oi_origdb; rc = nop->o_bd->be_search(nop, &nrs); filter_free_x(nop, nop->ors_filter, 1); - op->o_tmpfree( key->bv_val, op->o_tmpmemctx ); if(rc != LDAP_SUCCESS && rc != LDAP_NO_SUCH_OBJECT) { op->o_bd->bd_info = (BackendInfo *) on->on_info; send_ldap_error(op, rs, rc, "unique_search failed"); - return(rs->sr_err); - } - - Debug(LDAP_DEBUG_TRACE, "=> unique_search found %d records\n", uq.count, 0, 0); + rc = rs->sr_err; + } else if(uq.count) { + 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 = op->o_tmpalloc(errmsgsize, op->o_tmpmemctx); + 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"); - return(rs->sr_err); + send_ldap_error(op, rs, LDAP_CONSTRAINT_VIOLATION, errmsg); + op->o_tmpfree(errmsg, op->o_tmpmemctx); + rc = rs->sr_err; + } else { + Debug(LDAP_DEBUG_TRACE, "=> unique_search found no records\n", 0, 0, 0); + rc = SLAP_CB_CONTINUE; } - return(SLAP_CB_CONTINUE); + op->o_tmpfree( key->bv_val, op->o_tmpmemctx ); + + return(rc); } static int -- 2.19.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor