[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#3388) Seg11 when used with pam_ldap under dtlogin

Joel Boutros wrote:

> uhh, weird, ber->ber_end is 0x30.  so it doesn't go to realloc().  
> this happens somewhere around a bunch of unrelated code.  the 
> assignment of new->sos_tag = tag; clobbers ber->ber_end, even though 
> everything looks right when i print variables as far as addresses and 
> whatnot.
> okay, i suspect gcc maybe (3.3.1).  or, it's something to look at/try, 
> at least.  sorry for wasting your time....

Solaris 8 is known to have bugs in malloc at particular patchlevels. 
This is complicated by the fact that their Openwin/DT libraries include 
their own private malloc functions, and the dynamic linker makes it 
ambiguous as to which malloc a particular routine will invoke. I don't 
remember the specifics, but we at Symas have run into this problem 
numerous times. I think it may also be related to some of the libraries 
being compiled -D_REENTRANT and others not. Certainly we have seen 
malloc crashes in /usr/dt/lib. This is one of the problems of the 
pam/nss architecture; the system only lets you load a single module for 
all situations, but a REENTRANT /threaded object won't work correctly in 
a non-threaded application, and vice versa.

>> I suggest you single-step through ber_realloc and see what is really 
>> happening.
  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support