SIGBUS Fix (diff) (fwd)

Ken Weaverling weave at hopi.dtcc.edu
Fri Jul 2 15:23:57 GMT 1999


On Fri, 2 Jul 1999, Luke Kenneth Casson Leighton wrote:

> please could people try this out and let me know what happens?  thx!

Didn't work for me. Still core dumps. Is it possible ret itself is being
free'ed somewhere?  

(btw, I had to munge your patch into 2.0.4b manually to get it to work...)

Frame 0, pc 0x800535c4 (kill+12)
Frame 1, pc 0x80043ca8 (abort+80)
Frame 2, line 2386, routine smb_panic(why=0x0021c860 -> "internal error"), file util.c
Frame 3, line 47, routine fault_report(sig=11), file fault.c
Frame 4, line 66, routine sig_fault(sig=11), file fault.c
Frame 5, pc 0x8007e6f8 (__sigacthandler2+64)
Frame 6, pc 0x80060bbc (realloc+2356)
Frame 7, pc 0x80060a1c (realloc+1940)
Frame 8, pc 0x800606c0 (realloc+1080)
Frame 9, pc 0x80060eb4 (realloc+3116)
Frame 10, pc 0x800600f0 (free+544)
Frame 11, pc 0x8005fe94 (malloc+76)
Frame 12, pc 0x80061240 (_findbuf+152)
Frame 13, pc 0x80056ea4 (fgets+172)
Frame 14, pc 0x80068cfc (getpwnam+92)
Frame 15, line 153, routine _Get_Pwnam(s=0xefffd2b8 -> "weave"), file username.c
Frame 16, line 198, routine Get_Pwnam(user=0xefffd2b8 -> "weave", allow_change=1), file username.c
Frame 17, line 298, routine add_session_user(user=0xefffebd8 -> "weave"), file password.c
Frame 18, line 267, routine make_connection(service=0xefffebd8 -> "weave", user=0xefffefd8 -> "", password=0xeffff3d8 -> "", pwlen=0, dev=0xeffff7d8 -> "A:", vuid=100u, ecode=0xeffffbd8), file service.c
Frame 19, line 316, routine reply_tcon_and_X(conn=0x00000000, inbuf=0x0026ab31 -> "", outbuf=0x0027af41 -> "", length=70, bufsize=61440), file reply.c
Frame 20, line 539, routine switch_message(type=117, inbuf=0x0026ab31 -> "", outbuf=0x0027af41 -> "", size=70, bufsize=61440), file process.c
Frame 21, line 572, routine construct_reply(inbuf=0x0026ab31 -> "", outbuf=0x0027af41 -> "", size=70, bufsize=61440), file process.c
Frame 22, line 642, routine process_smb(inbuf=0x0026ab31 -> "", outbuf=0x0027af41 -> ""), file process.c
Frame 23, line 1027, routine smbd_process(), file process.c
Frame 24, line 717, routine main(argc=2, argv=0xeffffe20), file server.c
Frame 25, pc 0x1040a4 (_start+416)


(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       char *pwd;
    157       pwd = (char *) strdup(ret->pw_passwd);
    158       ret->pw_passwd = pwd;




More information about the samba-technical mailing list