solaris 2.5.1 smbd 2.2.2 (& 2.2.0) SIGSEGV in initgroups when using nisplus

Tyler, Ross E retyler at
Fri Oct 26 10:49:03 GMT 2001

this IS NOT a problem on my solaris 2.7 machine with smbd 2.2.0.

it IS a problem on my solaris 2.5.1 machine (with latest kernel/nis/libc/libnsl patch 103640-37) on both smbd 2.2.2 and 2.2.0.

to reproduce the problem i simply try to list the shares of the local smbd (as the my 'samba' user).

    smbclient -L localhost -U samba
    Password: <sambapassword>
    session setup failed: code 0

log.smbd shows:

        INTERNAL ERROR: Signal 11 in pid 8519 (2.2.2)

connecting gdb to the fork'ed smbd process and break'ing at initgroups, i get the following stack traceback

#0  0xef5cdbf8 in initgroups () from /usr/lib/
#1  0x10bb78 in winbind_initgroups (user=0xefffef80 "samba", gid=125)
    at ../../src/source/nsswitch/wb_client.c:291
#2  0x613f4 in initialise_groups (user=0xefffef80 "samba", uid=125, gid=125)
    at ../../src/source/smbd/sec_ctx.c:234
#3  0x34a64 in register_vuid (uid=125, gid=125, unix_name=0xefffef80 "samba",
    requested_name=0x1b7578 "SAMBA", domain=0xefffea80 "C3I83.CV.FUL.US",
    guest=0) at ../../src/source/smbd/password.c:296
#4  0x4b1b0 in reply_sesssetup_and_X (conn=0xefffeb80, inbuf=0x214791 "",
    outbuf=0x224bd9 "", length=146, bufsize=65535)
    at ../../src/source/smbd/reply.c:1071
#5  0x68cd0 in switch_message (type=115, inbuf=0x214791 "",
    outbuf=0x224bd9 "", size=146, bufsize=65535)
    at ../../src/source/smbd/process.c:756
#6  0x68d5c in construct_reply (inbuf=0x214791 "", outbuf=0x224bd9 "",
    size=146, bufsize=65535) at ../../src/source/smbd/process.c:785
#7  0x69008 in process_smb (inbuf=0x214791 "", outbuf=0x224bd9 "")
    at ../../src/source/smbd/process.c:879
#8  0x69a3c in smbd_process () at ../../src/source/smbd/process.c:1270
#9  0x2e834 in main (argc=0, argv=0xeffffe2c)
    at ../../src/source/smbd/server.c:811

attempting to step, i get the following error

    Program received signal SIGSEGV, Segmentation fault.
    0xef7ddf14 in ?? ()

sometimes the stack seems corrupted after this:

#0  0xef5da290 in select () from /usr/lib/
#1  0xef6aab38 in __nis_cast_proc () from /usr/lib/
Cannot access memory at address 0xe6d

other times the stack seems OK:

#0  0xef7ddf14 in ?? ()
#1  0xef7d23f8 in ?? ()
#2  0xef616918 in _PROCEDURE_LINKAGE_TABLE_ () from /usr/lib/
#3  0xef5cdbf8 in initgroups () from /usr/lib/

the arguments to initgroups are

    initgroups("samba", 125)

samba is the name of a unix user (in nisplus passwd) and 125 is the gid of the samba group (in nisplus group).

note that a standalone program run as root with only a single call to initgroups with the same arguments succeeds!

note that smbd will succeed if i remove nisplus from the group line in /etc/nsswitch.conf:

    group: files nisplus

perhaps the parent's nisplus related sockets (file descriptors) are inherited by the child smbd and the child using them causes this

perhaps this is a sun problem (since it does work on a later version of the OS).
if you believe it is, i would appreciate it if you took it up with them as i am not familiar with the inner workings of samba.

as i noted before, i am using the latest libnsl, nisplus and kernel for solaris 2.5

i really appreciate your support and your product.

keep up the good work!

More information about the samba mailing list