Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Tero Saarni
OpenLDAP
Commits
3f9b2317
Commit
3f9b2317
authored
Oct 08, 2008
by
Quanah Gibson-Mount
Browse files
ITS#5730
parent
66d43774
Changes
2
Hide whitespace changes
Inline
Side-by-side
CHANGES
View file @
3f9b2317
...
...
@@ -29,7 +29,7 @@ OpenLDAP 2.4.12 Release (2008/10/08)
Fixed slapd syncrepl runqueue interval (ITS#5719)
Fixed slapd-bdb entry return if attr not present (ITS#5650)
Fixed slapd-bdb olcDbMode syntax (ITS#5713)
Fixed slapd-bdb/hdb release search entries earlier (ITS#5728)
Fixed slapd-bdb/hdb release search entries earlier (ITS#5728
,ITS#5730
)
Fixed slapd-bdb/hdb subtree search with empty suffix (ITS#5729)
Fixed slapd-dnssrv memory handling (ITS#5691)
Fixed slapd-ldap,slapd-meta invalid filter behavior (ITS#5614)
...
...
servers/slapd/back-bdb/search.c
View file @
3f9b2317
...
...
@@ -852,20 +852,51 @@ fetch_entry_retry:
if
(
!
manageDSAit
&&
op
->
oq_search
.
rs_scope
!=
LDAP_SCOPE_BASE
&&
is_entry_referral
(
e
)
)
{
struct
bdb_op_info
bois
;
struct
bdb_lock_info
blis
;
BerVarray
erefs
=
get_entry_referrals
(
op
,
e
);
rs
->
sr_ref
=
referral_rewrite
(
erefs
,
&
e
->
e_name
,
NULL
,
op
->
oq_search
.
rs_scope
==
LDAP_SCOPE_ONELEVEL
?
LDAP_SCOPE_BASE
:
LDAP_SCOPE_SUBTREE
);
/* free reader lock */
/* Must set lockinfo so that entry_release will work */
if
(
!
opinfo
)
{
bois
.
boi_oe
.
oe_key
=
bdb
;
bois
.
boi_txn
=
NULL
;
bois
.
boi_err
=
0
;
bois
.
boi_acl_cache
=
op
->
o_do_not_cache
;
bois
.
boi_flag
=
BOI_DONTFREE
;
bois
.
boi_locks
=
&
blis
;
blis
.
bli_next
=
NULL
;
LDAP_SLIST_INSERT_HEAD
(
&
op
->
o_extra
,
&
bois
.
boi_oe
,
oe_next
);
}
else
{
blis
.
bli_next
=
opinfo
->
boi_locks
;
opinfo
->
boi_locks
=
&
blis
;
}
blis
.
bli_id
=
e
->
e_id
;
blis
.
bli_lock
=
lock
;
blis
.
bli_flag
=
BLI_DONTFREE
;
rs
->
sr_flags
=
REP_ENTRY_MUSTRELEASE
;
send_search_reference
(
op
,
rs
);
if
(
blis
.
bli_flag
)
{
#ifdef SLAP_ZONE_ALLOC
slap_zn_runlock
(
bdb
->
bi_cache
.
c_zctx
,
e
);
slap_zn_runlock
(
bdb
->
bi_cache
.
c_zctx
,
e
);
#endif
bdb_cache_return_entry_r
(
bdb
,
e
,
&
lock
);
bdb_cache_return_entry_r
(
bdb
,
e
,
&
lock
);
if
(
opinfo
)
{
opinfo
->
boi_locks
=
blis
.
bli_next
;
}
else
{
LDAP_SLIST_REMOVE
(
&
op
->
o_extra
,
&
bois
.
boi_oe
,
OpExtra
,
oe_next
);
}
}
rs
->
sr_entry
=
NULL
;
e
=
NULL
;
send_search_reference
(
op
,
rs
);
ber_bvarray_free
(
rs
->
sr_ref
);
ber_bvarray_free
(
erefs
);
rs
->
sr_ref
=
NULL
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment