SIGBUS Panic in smbd

Ken Weaverling weave at hopi.dtcc.edu
Mon Jun 28 23:38:10 GMT 1999


On Tue, 29 Jun 1999, Jeremy Allison wrote:

> Ken Weaverling wrote:
> 
> > > The reason for the crashes the this thread started with is that
> > > ret->pw_passwd is __most__ likely a pointer to a static area and
> > > calling free on that can cause a crash.
> > 
> > I've seen this myself. I just upgraded to 2.04b from 2.03 on a box that
> > serves thousands of users.  The panics started to occur.  This is
> > a debugger dump.
> 
> Ok - I want to get this straight. This is with a machine
> that has HAVE_GETPWANAM defined after configure, correct ?

Sorry to break bad news to you, but on this box, there is no getpwanam()
and it isn't defined in config.h either.

It looks like it is failing inside getpwnam()...

btw, I have a machine that I can reproduce this everytime consistently.
But if I log onto the same machine with a different account executing the
same logon script, it's fine. Weird... 

dbx) up
Frame 15, line 153, routine _Get_Pwnam(s=0xefffd2b8 -> "usertemp"), file username.c
*   153   ret = getpwnam(s);
(dbx) list 153
    148 ****************************************************************************/
    149 static struct passwd *_Get_Pwnam(char *s)
    150 {
    151   struct passwd *ret;
    152 
*   153   ret = getpwnam(s);
    154   if (ret)
    155     {
    156 #ifdef HAVE_GETPWANAM
    157       struct passwd_adjunct *pwret;
    158       pwret = getpwanam(s);
(dbx) print s 
s = 0xefffd2b8 -> "usertemp"
(dbx) print ret
ret = 0xefffd1f1
(dbx) print *ret
Warning: Unable to dereference pointer.
Warning: Unable to dereference pointer.
Warning: Unable to dereference pointer.
Warning: Unable to dereference pointer.
Warning: Unable to dereference pointer.
Warning: Unable to dereference pointer.
Warning: Unable to dereference pointer.
*ret = {
   pw_name   = 0x00fe9400
   pw_passwd = 0x26ab0000
   pw_uid    = 632443008
   pw_gid    = 180262912
   pw_age    = 0x00002000
   pw_comment = 0x1d540400
   pw_gecos  = 0x00001380
   pw_dir    = 0x0abe9880
   pw_shell  = 0x06027000
}



More information about the samba-technical mailing list