[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: ITS#3971 Fix
Mitya wrote:
Hi,
(Maybe I should have posted this to OpenLDAP-Devel, but I'm not an
OpenLDAP developer, and I feel a little bit lazy to subscribe to another
one mailing list ;)
Since you're discussing ITS#3971, you should simply have replied to
openldap-its...
The first patch fixes ITS#3971. It needs to be reviewed; I only ran
"make check" (successfully) after applying this patch, but maybe similar
corrections need to be done in tool section of backglue.
The nature of ITS#3971 is the following; we implicitly make
op->o_req_dn->bv_val equal to gi->gi_n[i]->gn_be->be_suffix[0]->bv_val
(backglue.c:338), and op->o_req_dn->bv_val after that can be freed by
rwm (rwm.c:82), thus filling gi->gi_n[i]->gn_be->be_suffix[0]->bv_val
with garbage and rendering backglue inoperational for further
invocations. Replacing assignment by ber_dupbv fixes this.
Thanks for investigating. I would prefer a different fix in rwm, but
knowing why the problem occurs is a great start.
Even with this patch backglue and global rwm do not work together in
subordinate relays configuration. That's because glue makes no chance
for a global rwm instance to act on subordinates, after relaying is
done. The nature of this misbehaviour seems to be a little bit deeper,
so I didn't investigate this.
I don't believe you should be using the rwm overlay as a global overlay
since the relay backend automatically invokes it itself.
--
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
OpenLDAP Core Team http://www.openldap.org/project/