Commit 2d6669c5 authored by Quanah Gibson-Mount's avatar Quanah Gibson-Mount
Browse files

ITS#5861

parent dbf65aba
...@@ -12,6 +12,7 @@ OpenLDAP 2.4.14 Engineering ...@@ -12,6 +12,7 @@ OpenLDAP 2.4.14 Engineering
Fixed slapd bconfig to return error codes (ITS#5867) Fixed slapd bconfig to return error codes (ITS#5867)
Fixed slapd syncrepl rename handling (ITS#5809) Fixed slapd syncrepl rename handling (ITS#5809)
Fixed slapd syncrepl MMR when adding new server (ITS#5850) Fixed slapd syncrepl MMR when adding new server (ITS#5850)
Fixed slapd-bdb/hdb RFC4528 control support (ITS#5861)
Fixed slapd-ldap idassert-bind validity checking (ITS#5863) Fixed slapd-ldap idassert-bind validity checking (ITS#5863)
Fixed slapd-ldif numerous bugs (ITS#5408) Fixed slapd-ldif numerous bugs (ITS#5408)
Fixed slapd-ldif rename on same DN (ITS#5319) Fixed slapd-ldif rename on same DN (ITS#5319)
......
...@@ -112,6 +112,13 @@ txnReturn: ...@@ -112,6 +112,13 @@ txnReturn:
goto return_results; goto return_results;
} }
if ( get_assert( op ) &&
( test_filter( op, op->ora_e, get_assertion( op )) != LDAP_COMPARE_TRUE ))
{
rs->sr_err = LDAP_ASSERTION_FAILED;
goto return_results;
}
subentry = is_entry_subentry( op->oq_add.rs_e ); subentry = is_entry_subentry( op->oq_add.rs_e );
/* Get our reader TXN */ /* Get our reader TXN */
......
...@@ -975,6 +975,17 @@ backsql_add( Operation *op, SlapReply *rs ) ...@@ -975,6 +975,17 @@ backsql_add( Operation *op, SlapReply *rs )
slap_add_opattrs( op, &rs->sr_text, textbuf, textlen, 1 ); slap_add_opattrs( op, &rs->sr_text, textbuf, textlen, 1 );
if ( get_assert( op ) &&
( test_filter( op, op->ora_e, get_assertion( op )) != LDAP_COMPARE_TRUE ))
{
Debug( LDAP_DEBUG_TRACE, " backsql_add(\"%s\"): "
"assertion control failed -- aborting\n",
op->ora_e->e_name.bv_val, 0, 0 );
e = NULL;
rs->sr_err = LDAP_ASSERTION_FAILED;
goto done;
}
/* search structuralObjectClass */ /* search structuralObjectClass */
for ( at = op->ora_e->e_attrs; at != NULL; at = at->a_next ) { for ( at = op->ora_e->e_attrs; at != NULL; at = at->a_next ) {
if ( at->a_desc == slap_schema.si_ad_structuralObjectClass ) { if ( at->a_desc == slap_schema.si_ad_structuralObjectClass ) {
......
...@@ -123,8 +123,7 @@ static char *session_tracking_extops[] = { ...@@ -123,8 +123,7 @@ static char *session_tracking_extops[] = {
static struct slap_control control_defs[] = { static struct slap_control control_defs[] = {
{ LDAP_CONTROL_ASSERT, { LDAP_CONTROL_ASSERT,
(int)offsetof(struct slap_control_ids, sc_assert), (int)offsetof(struct slap_control_ids, sc_assert),
SLAP_CTRL_DELETE|SLAP_CTRL_MODIFY|SLAP_CTRL_RENAME| SLAP_CTRL_UPDATE|SLAP_CTRL_COMPARE|SLAP_CTRL_SEARCH,
SLAP_CTRL_COMPARE|SLAP_CTRL_SEARCH,
NULL, NULL, NULL, NULL,
parseAssert, LDAP_SLIST_ENTRY_INITIALIZER(next) }, parseAssert, LDAP_SLIST_ENTRY_INITIALIZER(next) },
{ LDAP_CONTROL_PRE_READ, { LDAP_CONTROL_PRE_READ,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment