No subject


Tue Dec 2 04:10:01 GMT 2003


    (gdb) bt
    #0  0xff21c840 in _libc_kill () from /usr/lib/libc.so.1
    #1  0xff1b5ab4 in abort () from /usr/lib/libc.so.1
    #2  0x11f770 in readdirname ()
    #3  0x10b61c in fault_report ()
    #4  0x10b670 in sig_fault ()
    #5  <signal handler called>
    #6  0x87a04 in cli_errstr ()
    #7  0x842d4 in attempt_netbios_session_request ()
    #8  0x3a364 in connect_to_domain_password_server ()
    #9  0x3abb0 in domain_client_validate ()
    #10 0x4f46c in check_domain_security ()
    #11 0x4ff64 in reply_sesssetup_and_X ()
    #12 0x73a64 in switch_message ()
    #13 0x73af0 in construct_reply ()
    #14 0x73d9c in process_smb ()
    #15 0x74798 in smbd_process ()
    #16 0x316b4 in main ()
    (gdb) frame 6
    #6  0x87a04 in cli_errstr ()
    (gdb) disass
    Dump of assembler code for function cli_errstr:
    0x879f8 <cli_errstr>:   save  %sp, -128, %sp
    0x879fc <cli_errstr+4>: mov  %i0, %l0
    0x87a00 <cli_errstr+8>: ld  [ %l0 + 0xd64 ], %o0
    0x87a04 <cli_errstr+12>:        ldub  [ %o0 + 0xe ], %o1
    0x87a08 <cli_errstr+16>:        ldub  [ %o0 + 0xf ], %o0
    0x87a0c <cli_errstr+20>:        sll  %o0, 8, %o0
    0x87a10 <cli_errstr+24>:        or  %o1, %o0, %o1
    0x87a14 <cli_errstr+28>:        ld  [ %l0 + 0xd6c ], %o0
    0x87a18 <cli_errstr+32>:        cmp  %o0, 0
    0x87a1c <cli_errstr+36>:        bne,a   0x87a44 <cli_errstr+76>
    
    ...
    
    (gdb) print $i0
    $71 = 2756632
    (gdb) print $l0
    $72 = 2756632
    (gdb) print $o0
    $73 = 11
    (gdb) print *($l0 + 0xd64)
    $74 = 0

It look as though 0x87a04 is in the middle of the
SVAL(cli->inbuf,smb_flg2) in the initialization of the local variable
flgs2.

My read of the assembly says that at 0x87a00 register o0 should have
been assigned the value 2760060 (2756632 + 0xd64), but that did not
happen.

FWIW, I have only seen this crash once.

Any ideas?
Mike




More information about the samba-technical mailing list