Samba 2.2 and VFS feature

Brad Sahr bsahr at macromedia.com
Fri Oct 27 01:04:25 GMT 2000


I'm working on getting the simple audit VFS working with the Samba 2.2
branch and I'm running into a SIGSEGV. I updated my copy of the SAMBA_2_2
sources yesterday (0ct. 25th). I'm running on RedHat Linux 6.2.

The debugger tells me that the vfs_ops structure within the
connection_struct has somehow been re-initialized to 0. I say re-initialized
because this SIGSEGV occurs -after- the simple VFS is loaded up and
exercised. I see vfs_init, chdir, connect, stat, opendir, readdir, and
closedir being called within the VFS. In the Samba logs, the client runs
through SMBnegprot, SMBsesssetupX, SMBtconX and SMBtrans2 before running
into the SIGSEGV when processing a second SMBtconX. Debugger output is shown
below.

Any ideas how to catch this bug? I'm running smbd via inetd, would starting
smbd manually help to debug this?

Brad

Program received signal SIGSEGV, Segmentation fault.
0x0 in ?? ()
(gdb) bt
#0  0x0 in ?? ()
#1  0x808ab0c in vfs_ChDir (conn=0x81a2d08, path=0x817aab0 "/tmp")
    at smbd/vfs.c:571
#2  0x808ffd9 in make_connection (service=0xbffffccc "ipc$",
    user=0xbffff8cc "bsahr", password=0xbffff4cc "", pwlen=0,
    dev=0xbffff0cc "IPC", vuid=100, ecode=0xbffff0c8) at smbd/service.c:533
#3  0x8077446 in reply_tcon_and_X (conn=0x0, inbuf=0x8180c31 "",
    outbuf=0x8191039 "", length=71, bufsize=65535) at smbd/reply.c:334
#4  0x808e46a in switch_message (type=117, inbuf=0x8180c31 "",
    outbuf=0x8191039 "", size=71, bufsize=65535) at smbd/process.c:580
#5  0x808e508 in construct_reply (inbuf=0x8180c31 "", outbuf=0x8191039 "",
    size=71, bufsize=65535) at smbd/process.c:614
#6  0x808e690 in process_smb (inbuf=0x8180c31 "", outbuf=0x8191039 "")
    at smbd/process.c:677
#7  0x808ee4e in smbd_process () at smbd/process.c:1064
#8  0x806367c in main (argc=1, argv=0xbffffe74) at smbd/server.c:759
#9  0x4009d9cb in ?? ()

(gdb) up
#1  0x808ab0c in vfs_ChDir (conn=0x81a2d08, path=0x817aab0 "/tmp")
    at smbd/vfs.c:571
571		res = vfs_chdir(conn,path);

(gdb) info locals
conn = (connection_struct *) 0x81a2d08
path = 0x817aab0 "/tmp"
res = 135933192
LastDir = "/home/export/samba/data", '\000' <repeats 1000 times>

(gdb) print {connection_struct}conn
$3 = {next = 0x81a25c8, prev = 0x0, cnum = 2, service = 1, force_user = 0,
  uid_cache = {entries = 1, list = {500, 0, 0, 0}}, dirptr = 0x0, printer =
0,
  ipc = 1, read_only = 1, admin_user = 0, dirpath = 0x817b418 "",
  connectpath = 0x817aab0 "/tmp", origpath = 0x817b418 "", vfs_ops = {
    connect = 0, disconnect = 0, disk_free = 0, opendir = 0, readdir = 0,
    mkdir = 0, rmdir = 0, closedir = 0, open = 0, close = 0, read = 0,
    write = 0, lseek = 0, rename = 0, fsync = 0, stat = 0, fstat = 0,
    lstat = 0, unlink = 0, chmod = 0, chown = 0, chdir = 0, getwd = 0,
    utime = 0, ftruncate = 0, lock = 0, fget_nt_acl = 0, get_nt_acl = 0,
    fset_nt_acl = 0, set_nt_acl = 0}, dl_handle = 0x0,
  user = 0x81a2780 "bsahr", uid = 500, gid = 500,
  client_address = "192.168.197.252\000\000", vuid = 100, ngroups = 0,
  groups = 0x0, nt_user_token = 0x81a2e18, lastused = 972591590, used = 1,
  num_files_open = 0, hide_list = 0x0, veto_list = 0x0, veto_oplock_list =
0x0}





More information about the samba-technical mailing list