From: Pierangelo Masarati Date: Sun, 18 May 2008 11:23:53 +0000 (+0000) Subject: import fix to ITS#5513 X-Git-Tag: OPENLDAP_REL_ENG_2_4_10~46 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=c158364345ab1b581637be2540bfacde7827ef4c;p=openldap import fix to ITS#5513 --- diff --git a/CHANGES b/CHANGES index bf4e920ba9..23aa8001b6 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,7 @@ OpenLDAP 2.4 Change Log OpenLDAP 2.4.10 Engineering + Fixed slapd-ldap entry_get() op-dependent behavior (ITS#5513) OpenLDAP 2.4.9 Release (2008/05/07) Fixed libldap to use unsigned port (ITS#5436) diff --git a/servers/slapd/back-ldap/search.c b/servers/slapd/back-ldap/search.c index 27daed6a0f..3dcbcb65be 100644 --- a/servers/slapd/back-ldap/search.c +++ b/servers/slapd/back-ldap/search.c @@ -773,8 +773,9 @@ ldap_back_entry_get( ldapinfo_t *li = (ldapinfo_t *) op->o_bd->be_private; ldapconn_t *lc = NULL; - int rc = 1, + int rc, do_not_cache; + ber_tag_t tag; struct berval bdn; LDAPMessage *result = NULL, *e = NULL; @@ -788,12 +789,18 @@ ldap_back_entry_get( /* Tell getconn this is a privileged op */ do_not_cache = op->o_do_not_cache; + tag = op->o_tag; + /* do not cache */ op->o_do_not_cache = 1; - if ( !ldap_back_dobind( &lc, op, &rs, LDAP_BACK_DONTSEND ) ) { - op->o_do_not_cache = do_not_cache; + /* ldap_back_entry_get() is an entry lookup, so it does not need + * to know what the entry is being looked up for */ + op->o_tag = LDAP_REQ_SEARCH; + rc = ldap_back_dobind( &lc, op, &rs, LDAP_BACK_DONTSEND ); + op->o_do_not_cache = do_not_cache; + op->o_tag = tag; + if ( !rc ) { return rs.sr_err; } - op->o_do_not_cache = do_not_cache; if ( at ) { attrp = attr;