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

ITS#6506

parent a49e2acd
......@@ -8,6 +8,7 @@ OpenLDAP 2.4.22 Engineering
Fixed slapd acl non-entry internal searches (ITS#6481)
Fixed slapd certificateListValidate (ITS#6466)
Fixed slapd empty URI parsing (ITS#6465)
Fixed slapd glued misplaced entries (ITS#6506)
Fixed slapd glued paged results (ITS#6504)
Fixed slapd ignore controls with unrecognized flags (ITS#6480)
Fixed slapd REP_ENTRY flag handling (ITS#5340)
......
......@@ -56,6 +56,8 @@ static BackendDB *glueBack;
static BackendDB glueBackDone;
#define GLUEBACK_DONE (&glueBackDone)
static slap_overinst * glue_tool_inst( BackendInfo *bi);
static slap_response glue_op_response;
/* Just like select_backend, but only for our backends */
......@@ -619,6 +621,49 @@ glue_tool_entry_open (
toolDB = *b0;
toolDB.bd_info = oi->oi_orig;
/* Sanity checks */
{
slap_overinst *on = glue_tool_inst( b0->bd_info );
glueinfo *gi = on->on_bi.bi_private;
int i;
for (i = 0; i < gi->gi_nodes; i++) {
BackendDB *bd;
struct berval pdn;
dnParent( &gi->gi_n[i].gn_be->be_nsuffix[0], &pdn );
bd = select_backend( &pdn, 0 );
if ( bd ) {
ID id;
BackendDB db;
if ( overlay_is_over( bd ) ) {
slap_overinfo *oi = (slap_overinfo *)bd->bd_info;
db = *bd;
db.bd_info = oi->oi_orig;
bd = &db;
}
if ( !bd->bd_info->bi_tool_dn2id_get
|| !bd->bd_info->bi_tool_entry_open
|| !bd->bd_info->bi_tool_entry_close )
{
continue;
}
bd->bd_info->bi_tool_entry_open( bd, 0 );
id = bd->bd_info->bi_tool_dn2id_get( bd, &gi->gi_n[i].gn_be->be_nsuffix[0] );
bd->bd_info->bi_tool_entry_close( bd );
if ( id != NOID ) {
Debug( LDAP_DEBUG_ANY,
"glue_tool_entry_open: subordinate database suffix entry DN=\"%s\" also present in superior database rooted at DN=\"%s\"\n",
gi->gi_n[i].gn_be->be_suffix[0].bv_val, bd->be_suffix[0].bv_val, 0 );
return LDAP_OTHER;
}
}
}
}
return 0;
}
......
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