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

ITS#5857

parent 04c1c96a
...@@ -19,6 +19,7 @@ OpenLDAP 2.4.14 Engineering ...@@ -19,6 +19,7 @@ OpenLDAP 2.4.14 Engineering
Fixed slapd bconfig encoding incorrectly (ITS#5897) Fixed slapd bconfig encoding incorrectly (ITS#5897)
Fixed slapd connection assert (ITS#5835) Fixed slapd connection assert (ITS#5835)
Fixed slapd epoll handling (ITS#5886) Fixed slapd epoll handling (ITS#5886)
Fixed slapd frontend/backend options handling (ITS#5857)
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 syncrepl MMR with deleted entries (ITS#5843) Fixed slapd syncrepl MMR with deleted entries (ITS#5843)
......
...@@ -1005,13 +1005,19 @@ backend_check_restrictions( ...@@ -1005,13 +1005,19 @@ backend_check_restrictions(
slap_mask_t requires; slap_mask_t requires;
slap_mask_t opflag; slap_mask_t opflag;
slap_mask_t exopflag = 0; slap_mask_t exopflag = 0;
slap_ssf_set_t *ssf; slap_ssf_set_t ssfs, *ssf;
int updateop = 0; int updateop = 0;
int starttls = 0; int starttls = 0;
int session = 0; int session = 0;
restrictops = frontendDB->be_restrictops;
requires = frontendDB->be_requires;
ssfs = frontendDB->be_ssf_set;
ssf = &ssfs;
if ( op->o_bd ) { if ( op->o_bd ) {
int rc = SLAP_CB_CONTINUE; slap_ssf_t *fssf, *bssf;
int rc = SLAP_CB_CONTINUE, i;
if ( op->o_bd->be_chk_controls ) { if ( op->o_bd->be_chk_controls ) {
rc = ( *op->o_bd->be_chk_controls )( op, rs ); rc = ( *op->o_bd->be_chk_controls )( op, rs );
...@@ -1025,14 +1031,13 @@ backend_check_restrictions( ...@@ -1025,14 +1031,13 @@ backend_check_restrictions(
return rs->sr_err; return rs->sr_err;
} }
restrictops = op->o_bd->be_restrictops; restrictops |= op->o_bd->be_restrictops;
requires = op->o_bd->be_requires; requires |= op->o_bd->be_requires;
ssf = &op->o_bd->be_ssf_set; bssf = &op->o_bd->be_ssf_set.sss_ssf;
fssf = &ssfs.sss_ssf;
} else { for ( i=0; i<sizeof(ssfs)/sizeof(slap_ssf_t); i++ ) {
restrictops = frontendDB->be_restrictops; if ( bssf[i] ) fssf[i] = bssf[i];
requires = frontendDB->be_requires; }
ssf = &frontendDB->be_ssf_set;
} }
switch( op->o_tag ) { switch( op->o_tag ) {
......
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