GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... (gdb) break main Breakpoint 1 at 0xb0da2d: file smbd/server.c, line 1135. (gdb) run Starting program: /usr/local/samba/sbin/smbd Breakpoint 1, main (argc=1, argv=0x7fffffffec98) at smbd/server.c:1135 1135 bool print_build_options = False; (gdb) list 1130 static bool log_stdout = False; 1131 static char *ports = NULL; 1132 static char *profile_level = NULL; 1133 int opt; 1134 poptContext pc; 1135 bool print_build_options = False; 1136 enum { 1137 OPT_DAEMON = 1000, 1138 OPT_INTERACTIVE, 1139 OPT_FORK, (gdb) n 1156 }; (gdb) n 1157 TALLOC_CTX *frame = talloc_stackframe(); /* Setup tos. */ (gdb) n 1159 TimeInit(); (gdb) n 1165 pc = poptGetContext("smbd", argc, argv, long_options, 0); (gdb) n 1166 while((opt = poptGetNextOpt(pc)) != -1) { (gdb) n 1193 poptFreeContext(pc); (gdb) n 1195 if (interactive) { (gdb) n 1200 setup_logging(argv[0],log_stdout); (gdb) n 1202 if (print_build_options) { (gdb) q The program is running. Exit anyway? (y or n) y [root@armada21 ~]# gdb -d /mnt/src/samba/samba/source/ /usr/local/samba/sbin/smbd 84473 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... Attaching to program: /usr/local/samba/sbin/smbd, process 84473 Reading symbols from /usr/local/lib/libldap-2.4.so.6...done. Loaded symbols for /usr/local/lib/libldap-2.4.so.6 Reading symbols from /usr/local/lib/liblber-2.4.so.6...done. Loaded symbols for /usr/local/lib/liblber-2.4.so.6 Reading symbols from /usr/local/lib/libgssapi.so.2...done. Loaded symbols for /usr/local/lib/libgssapi.so.2 Reading symbols from /usr/local/lib/libheimntlm.so.1...done. Loaded symbols for /usr/local/lib/libheimntlm.so.1 Reading symbols from /usr/local/lib/libkrb5.so.23...done. Loaded symbols for /usr/local/lib/libkrb5.so.23 Reading symbols from /usr/local/lib/libhx509.so.2...done. Loaded symbols for /usr/local/lib/libhx509.so.2 Reading symbols from /usr/lib/libcom_err.so.4...done. Loaded symbols for /usr/lib/libcom_err.so.4 Reading symbols from /lib/libcrypto.so.5...done. Loaded symbols for /lib/libcrypto.so.5 Reading symbols from /usr/local/lib/libasn1.so.8...done. Loaded symbols for /usr/local/lib/libasn1.so.8 Reading symbols from /usr/local/lib/libroken.so.19...done. Loaded symbols for /usr/local/lib/libroken.so.19 Reading symbols from /lib/libcrypt.so.4...done. Loaded symbols for /lib/libcrypt.so.4 Reading symbols from /usr/lib/libpam.so.4...done. Loaded symbols for /usr/lib/libpam.so.4 Reading symbols from /lib/libc.so.7...done. Loaded symbols for /lib/libc.so.7 Reading symbols from /usr/local/lib/libiconv.so.3...done. Loaded symbols for /usr/local/lib/libiconv.so.3 Reading symbols from /usr/local/samba/lib/libtalloc.so.1...done. Loaded symbols for /usr/local/samba/lib/libtalloc.so.1 Reading symbols from /usr/local/samba/lib/libtdb.so.1...done. Loaded symbols for /usr/local/samba/lib/libtdb.so.1 Reading symbols from /usr/local/samba/lib/libwbclient.so.0...done. Loaded symbols for /usr/local/samba/lib/libwbclient.so.0 Reading symbols from /usr/lib/libgssapi.so.9...done. Loaded symbols for /usr/lib/libgssapi.so.9 Reading symbols from /usr/lib/libssl.so.5...done. Loaded symbols for /usr/lib/libssl.so.5 Reading symbols from /usr/local/samba/lib/vfs/fileid.so...done. Loaded symbols for /usr/local/samba/lib/vfs/fileid.so Reading symbols from /libexec/ld-elf.so.1...done. Loaded symbols for /libexec/ld-elf.so.1 0x0000000801fb68ec in writev () from /lib/libc.so.7 (gdb) bt #0 0x0000000801fb68ec in writev () from /lib/libc.so.7 #1 0x00000000007b0021 in sys_writev (fd=30, iov=0x7fffffffe6a0, iovcnt=1) at lib/system.c:164 #2 0x00000000007d0264 in write_data_iov (fd=30, orig_iov=0x7fffffffe6a0, iovcnt=1) at lib/util_sock.c:1056 #3 0x00000000007d03e8 in write_data (fd=30, buffer=0x8029b7050 "", N=32831) at lib/util_sock.c:1124 #4 0x00000000005316ac in srv_send_smb (fd=30, buffer=0x8029b7050 "", do_encrypt=false) at smbd/process.c:71 #5 0x00000000005355da in construct_reply (inbuf=0x8029740b0 "", size=63, unread_bytes=0, encrypted=false) at smbd/process.c:1528 #6 0x00000000005357ea in process_smb (inbuf=0x8029740b0 "", nread=63, unread_bytes=0, encrypted=false) at smbd/process.c:1566 #7 0x0000000000536712 in smbd_process () at smbd/process.c:1934 #8 0x0000000000b0f349 in main (argc=6, argv=0x7fffffffed80) at smbd/server.c:1526 (gdb) cont Continuing. ^C Program received signal SIGINT, Interrupt. 0x0000000801fb68ec in writev () from /lib/libc.so.7 (gdb) bt #0 0x0000000801fb68ec in writev () from /lib/libc.so.7 #1 0x00000000007b0021 in sys_writev (fd=30, iov=0x7fffffffe6a0, iovcnt=1) at lib/system.c:164 #2 0x00000000007d0264 in write_data_iov (fd=30, orig_iov=0x7fffffffe6a0, iovcnt=1) at lib/util_sock.c:1056 #3 0x00000000007d03e8 in write_data (fd=30, buffer=0x8029b7050 "", N=16447) at lib/util_sock.c:1124 #4 0x00000000005316ac in srv_send_smb (fd=30, buffer=0x8029b7050 "", do_encrypt=false) at smbd/process.c:71 #5 0x00000000005355da in construct_reply (inbuf=0x8029740b0 "", size=63, unread_bytes=0, encrypted=false) at smbd/process.c:1528 #6 0x00000000005357ea in process_smb (inbuf=0x8029740b0 "", nread=63, unread_bytes=0, encrypted=false) at smbd/process.c:1566 #7 0x0000000000536712 in smbd_process () at smbd/process.c:1934 #8 0x0000000000b0f349 in main (argc=6, argv=0x7fffffffed80) at smbd/server.c:1526 (gdb) break unix_convert Breakpoint 1 at 0x508ad4: file smbd/filename.c, line 131. (gdb) cont Continuing. ^C Program received signal SIGINT, Interrupt. 0x0000000801fda24c in select () from /lib/libc.so.7 (gdb) bt #0 0x0000000801fda24c in select () from /lib/libc.so.7 #1 0x00000000007d7ebc in sys_select (maxfd=31, readfds=0x7fffffffe6e0, writefds=0x7fffffffe660, errorfds=0x0, tval=0x7fffffffe650) at lib/select.c:93 #2 0x0000000000534623 in receive_message_or_smb (mem_ctx=0x802974050, buffer=0x7fffffffe828, buffer_len=0x7fffffffe820, p_unread=0x7fffffffe888, p_encrypted=0x7fffffffe81f) at smbd/process.c:845 #3 0x0000000000536635 in smbd_process () at smbd/process.c:1924 #4 0x0000000000b0f349 in main (argc=6, argv=0x7fffffffed80) at smbd/server.c:1526 (gdb) Quit (gdb) cont Continuing. ^C Program received signal SIGINT, Interrupt. 0x0000000801fda24c in select () from /lib/libc.so.7 (gdb) quit The program is running. Quit anyway (and detach it)? (y or n) y Detaching from program: /usr/local/samba/sbin/smbd, process 84473 [root@armada21 ~]# gdb -d /mnt/src/samba/samba/source/ /usr/local/samba/sbin/smbd 29790 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... Attaching to program: /usr/local/samba/sbin/smbd, process 29790 ptrace: No such process. /root/29790: No such file or directory. (gdb) Quit (gdb) [root@armada21 ~]# ctdb status Number of nodes:6 pnn:0 10.0.10.10 OK pnn:1 10.0.10.11 DISCONNECTED|UNHEALTHY pnn:2 10.0.10.12 DISCONNECTED|UNHEALTHY pnn:3 10.0.10.13 OK pnn:4 10.0.10.14 OK (THIS NODE) pnn:5 10.0.10.15 DISCONNECTED|UNHEALTHY Generation:858902792 Size:3 hash:0 lmaster:0 hash:1 lmaster:3 hash:2 lmaster:4 Recovery mode:NORMAL (0) Recovery master:3 [root@armada21 ~]# logout Connection to 10.0.10.13 closed. akloster@cycl0 ~/tmp/latest_ctdb$ ssh root@10.0.10.10 Enter passphrase for key '/home/akloster/.ssh/id_dsa': Password: Last login: Wed Aug 19 10:53:20 2009 from 10.0.8.4 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. [root@armada22 ~]# mount_nfs -T -3 -s -i -l cc.arriad.com:/home/akloster/ /mnt [root@armada22 ~]# gdb -d /mnt/src/samba/samba/source/ /usr/local/samba/sbin/smbd 29790 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... Attaching to program: /usr/local/samba/sbin/smbd, process 29790 Reading symbols from /usr/local/lib/libldap-2.4.so.6...done. Loaded symbols for /usr/local/lib/libldap-2.4.so.6 Reading symbols from /usr/local/lib/liblber-2.4.so.6...done. Loaded symbols for /usr/local/lib/liblber-2.4.so.6 Reading symbols from /usr/local/lib/libgssapi.so.2...done. Loaded symbols for /usr/local/lib/libgssapi.so.2 Reading symbols from /usr/local/lib/libheimntlm.so.1...done. Loaded symbols for /usr/local/lib/libheimntlm.so.1 Reading symbols from /usr/local/lib/libkrb5.so.23...done. Loaded symbols for /usr/local/lib/libkrb5.so.23 Reading symbols from /usr/local/lib/libhx509.so.2...done. Loaded symbols for /usr/local/lib/libhx509.so.2 Reading symbols from /usr/lib/libcom_err.so.4...done. Loaded symbols for /usr/lib/libcom_err.so.4 Reading symbols from /lib/libcrypto.so.5...done. Loaded symbols for /lib/libcrypto.so.5 Reading symbols from /usr/local/lib/libasn1.so.8...done. Loaded symbols for /usr/local/lib/libasn1.so.8 Reading symbols from /usr/local/lib/libroken.so.19...done. Loaded symbols for /usr/local/lib/libroken.so.19 Reading symbols from /lib/libcrypt.so.4...done. Loaded symbols for /lib/libcrypt.so.4 Reading symbols from /usr/lib/libpam.so.4...done. Loaded symbols for /usr/lib/libpam.so.4 Reading symbols from /lib/libc.so.7...done. Loaded symbols for /lib/libc.so.7 Reading symbols from /usr/local/lib/libiconv.so.3...done. Loaded symbols for /usr/local/lib/libiconv.so.3 Reading symbols from /usr/local/samba/lib/libtalloc.so.1...done. Loaded symbols for /usr/local/samba/lib/libtalloc.so.1 Reading symbols from /usr/local/samba/lib/libtdb.so.1...done. Loaded symbols for /usr/local/samba/lib/libtdb.so.1 Reading symbols from /usr/local/samba/lib/libwbclient.so.0...done. Loaded symbols for /usr/local/samba/lib/libwbclient.so.0 Reading symbols from /usr/lib/libgssapi.so.9...done. Loaded symbols for /usr/lib/libgssapi.so.9 Reading symbols from /usr/lib/libssl.so.5...done. Loaded symbols for /usr/lib/libssl.so.5 Reading symbols from /usr/local/samba/lib/vfs/fileid.so...done. Loaded symbols for /usr/local/samba/lib/vfs/fileid.so Reading symbols from /libexec/ld-elf.so.1...done. Loaded symbols for /libexec/ld-elf.so.1 0x0000000801fc3c9c in stat () from /lib/libc.so.7 (gdb) bt #0 0x0000000801fc3c9c in stat () from /lib/libc.so.7 #1 0x00000000007b02fd in sys_stat (fname=0x802974280 "torture.lck", sbuf=0x7fffffffe140) at lib/system.c:303 #2 0x0000000000548f66 in vfswrap_stat (handle=0x802939050, fname=0x802974280 "torture.lck", sbuf=0x7fffffffe140) at modules/vfs_default.c:498 #3 0x0000000000509a23 in unix_convert (ctx=0x802974050, conn=0x802927050, orig_path=0x8029741e0 "torture.lck", allow_wcard_last_component=false, pp_conv_path=0x7fffffffe518, pp_saved_last_component=0x0, pst=0x7fffffffe490) at smbd/filename.c:403 #4 0x00000000004c87fa in unlink_internals (conn=0x802927050, req=0x802974150, dirtype=22, name_in=0x8029741e0 "torture.lck", has_wild=false) at smbd/reply.c:2439 #5 0x00000000004c91a8 in reply_unlink (req=0x802974150) at smbd/reply.c:2635 #6 0x0000000000535445 in switch_message (type=6 '\006', req=0x802974150, size=68) at smbd/process.c:1486 #7 0x0000000000535503 in construct_reply (inbuf=0x8029740b0 "", size=68, unread_bytes=0, encrypted=false) at smbd/process.c:1509 #8 0x00000000005357ea in process_smb (inbuf=0x8029740b0 "", nread=68, unread_bytes=0, encrypted=false) at smbd/process.c:1566 #9 0x0000000000536712 in smbd_process () at smbd/process.c:1934 #10 0x0000000000b0f349 in main (argc=6, argv=0x7fffffffed80) at smbd/server.c:1526 (gdb) up #1 0x00000000007b02fd in sys_stat (fname=0x802974280 "torture.lck", sbuf=0x7fffffffe140) at lib/system.c:303 303 ret = stat(fname, sbuf); (gdb) list 298 { 299 int ret; 300 #if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_OFF64_T) && defined(HAVE_STAT64) 301 ret = stat64(fname, sbuf); 302 #else 303 ret = stat(fname, sbuf); 304 #endif 305 /* we always want directories to appear zero size */ 306 if (ret == 0 && S_ISDIR(sbuf->st_mode)) sbuf->st_size = 0; 307 return ret; (gdb) up #2 0x0000000000548f66 in vfswrap_stat (handle=0x802939050, fname=0x802974280 "torture.lck", sbuf=0x7fffffffe140) at modules/vfs_default.c:498 498 result = sys_stat(fname, sbuf); (gdb) list 493 static int vfswrap_stat(vfs_handle_struct *handle, const char *fname, SMB_STRUCT_STAT *sbuf) 494 { 495 int result; 496 497 START_PROFILE(syscall_stat); 498 result = sys_stat(fname, sbuf); 499 END_PROFILE(syscall_stat); 500 return result; 501 } 502 (gdb) print fname $1 = 0x802974280 "torture.lck" (gdb) up #3 0x0000000000509a23 in unix_convert (ctx=0x802974050, conn=0x802927050, orig_path=0x8029741e0 "torture.lck", allow_wcard_last_component=false, pp_conv_path=0x7fffffffe518, pp_saved_last_component=0x0, pst=0x7fffffffe490) at smbd/filename.c:403 403 ret = SMB_VFS_STAT(conn,name, &st); (gdb) list 398 */ 399 400 if (posix_pathnames) { 401 ret = SMB_VFS_LSTAT(conn,name, &st); 402 } else { 403 ret = SMB_VFS_STAT(conn,name, &st); 404 } 405 406 if (ret == 0) { 407 /* (gdb) up #4 0x00000000004c87fa in unlink_internals (conn=0x802927050, req=0x802974150, dirtype=22, name_in=0x8029741e0 "torture.lck", has_wild=false) at smbd/reply.c:2439 2439 status = unix_convert(ctx, conn, name_in, has_wild, &name, NULL, &sbuf); (gdb) list 2434 int count=0; 2435 NTSTATUS status = NT_STATUS_OK; 2436 SMB_STRUCT_STAT sbuf; 2437 TALLOC_CTX *ctx = talloc_tos(); 2438 2439 status = unix_convert(ctx, conn, name_in, has_wild, &name, NULL, &sbuf); 2440 if (!NT_STATUS_IS_OK(status)) { 2441 return status; 2442 } 2443 (gdb) up #5 0x00000000004c91a8 in reply_unlink (req=0x802974150) at smbd/reply.c:2635 2635 status = unlink_internals(conn, req, dirtype, name, (gdb) bt #0 0x0000000801fc3c9c in stat () from /lib/libc.so.7 #1 0x00000000007b02fd in sys_stat (fname=0x802974280 "torture.lck", sbuf=0x7fffffffe140) at lib/system.c:303 #2 0x0000000000548f66 in vfswrap_stat (handle=0x802939050, fname=0x802974280 "torture.lck", sbuf=0x7fffffffe140) at modules/vfs_default.c:498 #3 0x0000000000509a23 in unix_convert (ctx=0x802974050, conn=0x802927050, orig_path=0x8029741e0 "torture.lck", allow_wcard_last_component=false, pp_conv_path=0x7fffffffe518, pp_saved_last_component=0x0, pst=0x7fffffffe490) at smbd/filename.c:403 #4 0x00000000004c87fa in unlink_internals (conn=0x802927050, req=0x802974150, dirtype=22, name_in=0x8029741e0 "torture.lck", has_wild=false) at smbd/reply.c:2439 #5 0x00000000004c91a8 in reply_unlink (req=0x802974150) at smbd/reply.c:2635 #6 0x0000000000535445 in switch_message (type=6 '\006', req=0x802974150, size=68) at smbd/process.c:1486 #7 0x0000000000535503 in construct_reply (inbuf=0x8029740b0 "", size=68, unread_bytes=0, encrypted=false) at smbd/process.c:1509 #8 0x00000000005357ea in process_smb (inbuf=0x8029740b0 "", nread=68, unread_bytes=0, encrypted=false) at smbd/process.c:1566 #9 0x0000000000536712 in smbd_process () at smbd/process.c:1934 #10 0x0000000000b0f349 in main (argc=6, argv=0x7fffffffed80) at smbd/server.c:1526 (gdb) break reply_unlink Breakpoint 1 at 0x4c8d85: file smbd/reply.c, line 2590. (gdb) cont Continuing. Breakpoint 1, reply_unlink (req=0x802974150) at smbd/reply.c:2590 2590 connection_struct *conn = req->conn; (gdb) list 2585 Reply to a unlink 2586 ****************************************************************************/ 2587 2588 void reply_unlink(struct smb_request *req) 2589 { 2590 connection_struct *conn = req->conn; 2591 char *name = NULL; 2592 uint32 dirtype; 2593 NTSTATUS status; 2594 bool path_contains_wcard = False; (gdb) print *req $2 = {flags2 = 51203, smbpid = 7236, mid = 5708, vuid = 100, tid = 1, wct = 1 '\001', inbuf = 0x8029740b0 "", outbuf = 0x0, unread_bytes = 0, encrypted = false, conn = 0x802927050} (gdb) n 2591 char *name = NULL; (gdb) n 2594 bool path_contains_wcard = False; (gdb) n 2595 TALLOC_CTX *ctx = talloc_tos(); (gdb) n 2597 START_PROFILE(SMBunlink); (gdb) n 2599 if (req->wct < 1) { (gdb) print req->wct $3 = 1 '\001' (gdb) n 2605 dirtype = SVAL(req->inbuf,smb_vwv0); (gdb) n 2607 srvstr_get_path_wcard(ctx, (char *)req->inbuf, req->flags2, &name, (gdb) print dirtype $4 = 22 (gdb) print name $5 = 0x0 (gdb) n 2610 if (!NT_STATUS_IS_OK(status)) { (gdb) print name $6 = 0x8029741e0 "torture.lck" (gdb) print status $7 = {v = 0} (gdb) n 2616 status = resolve_dfspath_wcard(ctx, conn, (gdb) n 2621 if (!NT_STATUS_IS_OK(status)) { (gdb) print path_contains_wcard $8 = false (gdb) n 2633 DEBUG(3,("reply_unlink : %s\n",name)); (gdb) n 2635 status = unlink_internals(conn, req, dirtype, name, (gdb) print conn $9 = (connection_struct *) 0x802927050 (gdb) print *conn $10 = {next = 0x0, prev = 0x0, cnum = 1, params = 0x8029023f0, force_user = false, vuid_cache = {next_entry = 1, array = {{ server_info = 0x80298b350, vuid = 100, read_only = false, admin_user = false}, {server_info = 0x0, vuid = 0, read_only = false, admin_user = false} }}, dirptr = 0x0, printer = false, ipc = false, read_only = false, admin_user = false, dirpath = 0xb964fb "", connectpath = 0x80290b2e0 "/var/samba/exports/smbtorture/meddy/smbtorture", origpath = 0x80290b310 "/var/samba/exports/smbtorture/meddy/smbtorture", vfs = {ops = {connect_fn = 0x802a211b0 , disconnect = 0x802a21620 , disk_free = 0x547880 , get_quota = 0x5478e0 , set_quota = 0x547910 , get_shadow_copy_data = 0x547940 , statvfs = 0x547970 , fs_capabilities = 0x5479a0 , opendir = 0x5479b0 , readdir = 0x547ae0 , seekdir = 0x547bb0 , telldir = 0x547c80 , rewind_dir = 0x547d50 , mkdir = 0x547e10 , rmdir = 0x547fb0 , closedir = 0x548080 , open = 0x548150 , close_fn = 0x548230 , vfs_read = 0x548300 , pread = 0x548410 , write = 0x548570 , ---Type to continue, or q to quit--- pwrite = 0x548680 , lseek = 0x5487d0 , sendfile = 0x5488f0 , recvfile = 0x548a10 , rename = 0x548d30 , fsync = 0x548e20 , stat = 0x548ef0 , fstat = 0x548fc0 , lstat = 0x549090 , unlink = 0x549160 , chmod = 0x549230 , fchmod = 0x5493a0 , chown = 0x549510 , fchown = 0x5495e0 , lchown = 0x5496c0 , chdir = 0x549790 , getwd = 0x549860 , ntimes = 0x549930 , ftruncate = 0x549d90 , lock = 0x54a110 , kernel_flock = 0x54a200 , linux_setlease = 0x54a3e0 , getlock = 0x54a2e0 , symlink = 0x54a4b0 , vfs_readlink = 0x54a580 , link = 0x54a660 , mknod = 0x54a730 , realpath = 0x54a810 , notify_watch = 0x54a8f0 , chflags = 0x54a920 , file_id_create = 0x802a21730 , streaminfo = 0x54a990 , get_real_filename = 0x54abc0 , fget_nt_acl = 0x54ac10 , get_nt_acl = 0x54acf0 , ---Type to continue, or q to quit--- fset_nt_acl = 0x54add0 , chmod_acl = 0x54aeb0 , fchmod_acl = 0x54af90 , sys_acl_get_entry = 0x54b060 , sys_acl_get_tag_type = 0x54b090 , sys_acl_get_permset = 0x54b0c0 , sys_acl_get_qualifier = 0x54b0f0 , sys_acl_get_file = 0x54b110 , sys_acl_get_fd = 0x54b140 , sys_acl_clear_perms = 0x54b160 , sys_acl_add_perm = 0x54b180 , sys_acl_to_text = 0x54b1b0 , sys_acl_init = 0x54b1e0 , sys_acl_create_entry = 0x54b200 , sys_acl_set_tag_type = 0x54b230 , sys_acl_set_qualifier = 0x54b260 , sys_acl_set_permset = 0x54b290 , sys_acl_valid = 0x54b2c0 , sys_acl_set_file = 0x54b2e0 , sys_acl_set_fd = 0x54b310 , sys_acl_delete_def_file = 0x54b340 , sys_acl_get_perm = 0x54b360 , sys_acl_free_text = 0x54b390 , sys_acl_free_acl = 0x54b3b0 , sys_acl_free_qualifier = 0x54b3d0 , getxattr = 0x54b400 , ---Type to continue, or q to quit--- lgetxattr = 0x54b440 , fgetxattr = 0x54b480 , listxattr = 0x54b4c0 , llistxattr = 0x54b4f0 , flistxattr = 0x54b520 , removexattr = 0x54b560 , lremovexattr = 0x54b590 , fremovexattr = 0x54b5c0 , setxattr = 0x54b5f0 , lsetxattr = 0x54b630 , fsetxattr = 0x54b670 , aio_read = 0x54b6c0 , aio_write = 0x54b6e0 , aio_return_fn = 0x54b700 , aio_cancel = 0x54b720 , aio_error_fn = 0x54b750 , aio_fsync = 0x54b770 , aio_suspend = 0x54b7a0 , aio_force = 0x54b7d0 , is_offline = 0x54b7f0 , set_offline = 0x54b8d0 }, handles = { connect_hnd = 0x802939850, disconnect = 0x802939850, disk_free = 0x802939050, get_quota = 0x802939050, set_quota = 0x802939050, get_shadow_copy_data = 0x802939050, statvfs = 0x802939050, fs_capabilities = 0x802939050, opendir = 0x802939050, readdir = 0x802939050, seekdir = 0x802939050, ---Type to continue, or q to quit--- telldir = 0x802939050, rewind_dir = 0x802939050, mkdir = 0x802939050, rmdir = 0x802939050, closedir = 0x802939050, open = 0x802939050, close_hnd = 0x802939050, vfs_read = 0x802939050, pread = 0x802939050, write = 0x802939050, pwrite = 0x802939050, lseek = 0x802939050, sendfile = 0x802939050, recvfile = 0x802939050, rename = 0x802939050, fsync = 0x802939050, stat = 0x802939050, fstat = 0x802939050, lstat = 0x802939050, unlink = 0x802939050, chmod = 0x802939050, fchmod = 0x802939050, chown = 0x802939050, fchown = 0x802939050, lchown = 0x802939050, chdir = 0x802939050, getwd = 0x802939050, ntimes = 0x802939050, ftruncate = 0x802939050, lock = 0x802939050, kernel_flock = 0x802939050, linux_setlease = 0x802939050, getlock = 0x802939050, symlink = 0x802939050, vfs_readlink = 0x802939050, link = 0x802939050, mknod = 0x802939050, realpath = 0x802939050, notify_watch = 0x802939050, chflags = 0x802939050, file_id_create = 0x802939850, streaminfo = 0x802939050, get_real_filename = 0x802939050, fget_nt_acl = 0x802939050, get_nt_acl = 0x802939050, fset_nt_acl = 0x802939050, chmod_acl = 0x802939050, fchmod_acl = 0x802939050, sys_acl_get_entry = 0x802939050, sys_acl_get_tag_type = 0x802939050, sys_acl_get_permset = 0x802939050, sys_acl_get_qualifier = 0x802939050, sys_acl_get_file = 0x802939050, sys_acl_get_fd = 0x802939050, sys_acl_clear_perms = 0x802939050, sys_acl_add_perm = 0x802939050, sys_acl_to_text = 0x802939050, sys_acl_init = 0x802939050, sys_acl_create_entry = 0x802939050, sys_acl_set_tag_type = 0x802939050, sys_acl_set_qualifier = 0x802939050, sys_acl_set_permset = 0x802939050, sys_acl_valid = 0x802939050, ---Type to continue, or q to quit--- sys_acl_set_file = 0x802939050, sys_acl_set_fd = 0x802939050, sys_acl_delete_def_file = 0x802939050, sys_acl_get_perm = 0x802939050, sys_acl_free_text = 0x802939050, sys_acl_free_acl = 0x802939050, sys_acl_free_qualifier = 0x802939050, getxattr = 0x802939050, lgetxattr = 0x802939050, fgetxattr = 0x802939050, listxattr = 0x802939050, llistxattr = 0x802939050, flistxattr = 0x802939050, removexattr = 0x802939050, lremovexattr = 0x802939050, fremovexattr = 0x802939050, setxattr = 0x802939050, lsetxattr = 0x802939050, fsetxattr = 0x802939050, aio_read = 0x802939050, aio_write = 0x802939050, aio_return = 0x802939050, aio_cancel = 0x802939050, aio_error = 0x802939050, aio_fsync = 0x802939050, aio_suspend = 0x802939050, aio_force = 0x802939050, is_offline = 0x802939050, set_offline = 0x802939050}}, vfs_opaque = {ops = { connect_fn = 0x547850 , disconnect = 0x547870 , disk_free = 0x547880 , get_quota = 0x5478e0 , set_quota = 0x547910 , get_shadow_copy_data = 0x547940 , statvfs = 0x547970 , fs_capabilities = 0x5479a0 , opendir = 0x5479b0 , readdir = 0x547ae0 , seekdir = 0x547bb0 , ---Type to continue, or q to quit--- telldir = 0x547c80 , rewind_dir = 0x547d50 , mkdir = 0x547e10 , rmdir = 0x547fb0 , closedir = 0x548080 , open = 0x548150 , close_fn = 0x548230 , vfs_read = 0x548300 , pread = 0x548410 , write = 0x548570 , pwrite = 0x548680 , lseek = 0x5487d0 , sendfile = 0x5488f0 , recvfile = 0x548a10 , rename = 0x548d30 , fsync = 0x548e20 , stat = 0x548ef0 , fstat = 0x548fc0 , lstat = 0x549090 , unlink = 0x549160 , chmod = 0x549230 , fchmod = 0x5493a0 , chown = 0x549510 , fchown = 0x5495e0 , lchown = 0x5496c0 , chdir = 0x549790 , getwd = 0x549860 , ntimes = 0x549930 , ftruncate = 0x549d90 , lock = 0x54a110 , kernel_flock = 0x54a200 , linux_setlease = 0x54a3e0 , getlock = 0x54a2e0 , symlink = 0x54a4b0 , vfs_readlink = 0x54a580 , link = 0x54a660 , mknod = 0x54a730 , realpath = 0x54a810 , notify_watch = 0x54a8f0 , ---Type to continue, or q to quit--- chflags = 0x54a920 , file_id_create = 0x802a21730 , streaminfo = 0x54a990 , get_real_filename = 0x54abc0 , fget_nt_acl = 0x54ac10 , get_nt_acl = 0x54acf0 , fset_nt_acl = 0x54add0 , chmod_acl = 0x54aeb0 , fchmod_acl = 0x54af90 , sys_acl_get_entry = 0x54b060 , sys_acl_get_tag_type = 0x54b090 , sys_acl_get_permset = 0x54b0c0 , sys_acl_get_qualifier = 0x54b0f0 , sys_acl_get_file = 0x54b110 , sys_acl_get_fd = 0x54b140 , sys_acl_clear_perms = 0x54b160 , sys_acl_add_perm = 0x54b180 , sys_acl_to_text = 0x54b1b0 , sys_acl_init = 0x54b1e0 , sys_acl_create_entry = 0x54b200 , sys_acl_set_tag_type = 0x54b230 , sys_acl_set_qualifier = 0x54b260 , sys_acl_set_permset = 0x54b290 , sys_acl_valid = 0x54b2c0 , sys_acl_set_file = 0x54b2e0 , sys_acl_set_fd = 0x54b310 , ---Type to continue, or q to quit--- sys_acl_delete_def_file = 0x54b340 , sys_acl_get_perm = 0x54b360 , sys_acl_free_text = 0x54b390 , sys_acl_free_acl = 0x54b3b0 , sys_acl_free_qualifier = 0x54b3d0 , getxattr = 0x54b400 , lgetxattr = 0x54b440 , fgetxattr = 0x54b480 , listxattr = 0x54b4c0 , llistxattr = 0x54b4f0 , flistxattr = 0x54b520 , removexattr = 0x54b560 , lremovexattr = 0x54b590 , fremovexattr = 0x54b5c0 , setxattr = 0x54b5f0 , lsetxattr = 0x54b630 , fsetxattr = 0x54b670 , aio_read = 0x54b6c0 , aio_write = 0x54b6e0 , aio_return_fn = 0x54b700 , aio_cancel = 0x54b720 , aio_error_fn = 0x54b750 , aio_fsync = 0x54b770 , aio_suspend = 0x54b7a0 , aio_force = 0x54b7d0 , is_offline = 0x54b7f0 , ---Type to continue, or q to quit--- set_offline = 0x54b8d0 }, handles = { connect_hnd = 0x802939050, disconnect = 0x802939050, disk_free = 0x802939050, get_quota = 0x802939050, set_quota = 0x802939050, get_shadow_copy_data = 0x802939050, statvfs = 0x802939050, fs_capabilities = 0x802939050, opendir = 0x802939050, readdir = 0x802939050, seekdir = 0x802939050, telldir = 0x802939050, rewind_dir = 0x802939050, mkdir = 0x802939050, rmdir = 0x802939050, closedir = 0x802939050, open = 0x802939050, close_hnd = 0x802939050, vfs_read = 0x802939050, pread = 0x802939050, write = 0x802939050, pwrite = 0x802939050, lseek = 0x802939050, sendfile = 0x802939050, recvfile = 0x802939050, rename = 0x802939050, fsync = 0x802939050, stat = 0x802939050, fstat = 0x802939050, lstat = 0x802939050, unlink = 0x802939050, chmod = 0x802939050, fchmod = 0x802939050, chown = 0x802939050, fchown = 0x802939050, lchown = 0x802939050, chdir = 0x802939050, getwd = 0x802939050, ntimes = 0x802939050, ftruncate = 0x802939050, lock = 0x802939050, kernel_flock = 0x802939050, linux_setlease = 0x802939050, getlock = 0x802939050, symlink = 0x802939050, vfs_readlink = 0x802939050, link = 0x802939050, mknod = 0x802939050, realpath = 0x802939050, notify_watch = 0x802939050, chflags = 0x802939050, file_id_create = 0x802939850, streaminfo = 0x802939050, get_real_filename = 0x802939050, fget_nt_acl = 0x802939050, get_nt_acl = 0x802939050, fset_nt_acl = 0x802939050, chmod_acl = 0x802939050, fchmod_acl = 0x802939050, sys_acl_get_entry = 0x802939050, sys_acl_get_tag_type = 0x802939050, sys_acl_get_permset = 0x802939050, ---Type to continue, or q to quit--- sys_acl_get_qualifier = 0x802939050, sys_acl_get_file = 0x802939050, sys_acl_get_fd = 0x802939050, sys_acl_clear_perms = 0x802939050, sys_acl_add_perm = 0x802939050, sys_acl_to_text = 0x802939050, sys_acl_init = 0x802939050, sys_acl_create_entry = 0x802939050, sys_acl_set_tag_type = 0x802939050, sys_acl_set_qualifier = 0x802939050, sys_acl_set_permset = 0x802939050, sys_acl_valid = 0x802939050, sys_acl_set_file = 0x802939050, sys_acl_set_fd = 0x802939050, sys_acl_delete_def_file = 0x802939050, sys_acl_get_perm = 0x802939050, sys_acl_free_text = 0x802939050, sys_acl_free_acl = 0x802939050, sys_acl_free_qualifier = 0x802939050, getxattr = 0x802939050, lgetxattr = 0x802939050, fgetxattr = 0x802939050, listxattr = 0x802939050, llistxattr = 0x802939050, flistxattr = 0x802939050, removexattr = 0x802939050, lremovexattr = 0x802939050, fremovexattr = 0x802939050, setxattr = 0x802939050, lsetxattr = 0x802939050, fsetxattr = 0x802939050, aio_read = 0x802939050, aio_write = 0x802939050, aio_return = 0x802939050, aio_cancel = 0x802939050, aio_error = 0x802939050, aio_fsync = 0x802939050, aio_suspend = 0x802939050, aio_force = 0x802939050, is_offline = 0x802939050, set_offline = 0x802939050}}, vfs_handles = 0x802939850, server_info = 0x80298b350, force_group_gid = 4294967295, client_address = "10.0.8.115\000", 'ñ' , vuid = 100, lastused = 1250703882, lastused_count = 1250703883, used = true, num_files_open = 0, num_smb_operations = 1584484, encrypt_level = 2, encrypted_tid = false, case_sensitive = false, case_preserve = true, ---Type to continue, or q to quit--- short_case_preserve = true, fs_capabilities = 3, hide_list = 0x0, veto_list = 0x0, veto_oplock_list = 0x0, aio_write_behind_list = 0x0, dfree_info = 0x0, pending_trans = 0x0, notify_ctx = 0x802905070} (gdb) print req $11 = (struct smb_request *) 0x802974150 (gdb) print *req $12 = {flags2 = 51203, smbpid = 7236, mid = 5708, vuid = 100, tid = 1, wct = 1 '\001', inbuf = 0x8029740b0 "", outbuf = 0x0, unread_bytes = 0, encrypted = false, conn = 0x802927050} (gdb) print dirtype $13 = 22 (gdb) print name $14 = 0x8029741e0 "torture.lck" (gdb) print path_contains_wcard $15 = false (gdb) s unlink_internals (conn=0x802927050, req=0x802974150, dirtype=22, name_in=0x8029741e0 "torture.lck", has_wild=false) at smbd/reply.c:2430 2430 const char *directory = NULL; (gdb) list 2425 ****************************************************************************/ 2426 2427 NTSTATUS unlink_internals(connection_struct *conn, struct smb_request *req, 2428 uint32 dirtype, const char *name_in, bool has_wild) 2429 { 2430 const char *directory = NULL; 2431 char *mask = NULL; 2432 char *name = NULL; 2433 char *p = NULL; 2434 int count=0; (gdb) n 2431 char *mask = NULL; (gdb) n 2432 char *name = NULL; (gdb) n 2433 char *p = NULL; (gdb) n 2434 int count=0; (gdb) n 2435 NTSTATUS status = NT_STATUS_OK; (gdb) n 2437 TALLOC_CTX *ctx = talloc_tos(); (gdb) n 2439 status = unix_convert(ctx, conn, name_in, has_wild, &name, NULL, &sbuf); (gdb) s unix_convert (ctx=0x802974050, conn=0x802927050, orig_path=0x8029741e0 "torture.lck", allow_wcard_last_component=false, pp_conv_path=0x7fffffffe518, pp_saved_last_component=0x0, pst=0x7fffffffe490) at smbd/filename.c:131 131 char *dirpath = NULL; (gdb) list 126 char **pp_saved_last_component, 127 SMB_STRUCT_STAT *pst) 128 { 129 SMB_STRUCT_STAT st; 130 char *start, *end; 131 char *dirpath = NULL; 132 char *name = NULL; 133 char *stream = NULL; 134 bool component_was_mangled = False; 135 bool name_has_wildcard = False; (gdb) n 132 char *name = NULL; (gdb) n 133 char *stream = NULL; (gdb) n 134 bool component_was_mangled = False; (gdb) n 135 bool name_has_wildcard = False; (gdb) n 136 bool posix_pathnames = false; (gdb) n 138 int ret = -1; (gdb) n 140 SET_STAT_INVALID(*pst); (gdb) n 141 *pp_conv_path = NULL; (gdb) n 142 if(pp_saved_last_component) { (gdb) print pp_saved_last_component $16 = (char **) 0x0 (gdb) n 146 if (conn->printer) { (gdb) n 155 DEBUG(5, ("unix_convert called on file \"%s\"\n", orig_path)); (gdb) n 168 SMB_ASSERT(*orig_path != '/'); (gdb) print *orig_path $17 = 116 't' (gdb) print orig_path $18 = 0x8029741e0 "torture.lck" (gdb) n 179 if (!*orig_path) { (gdb) n 192 if (orig_path[0] == '.' && (orig_path[1] == '/' || (gdb) n 204 if (!(name = talloc_strdup(ctx, orig_path))) { (gdb) n 218 if (conn->case_sensitive && !conn->case_preserve && (gdb) print name $19 = 0x802974280 "torture.lck" (gdb) print conn->case_sensitive $20 = false (gdb) print conn->case_preserve $21 = true (gdb) n 227 if(pp_saved_last_component) { (gdb) print pp_saved_last_component $22 = (char **) 0x0 (gdb) n 237 posix_pathnames = lp_posix_pathnames(); (gdb) print posix_pathnames $23 = false (gdb) n 239 if (!posix_pathnames) { (gdb) print posix_pathnames $24 = false (gdb) n 240 stream = strchr_m(name, ':'); (gdb) print stream $25 = 0x0 (gdb) n 242 if (stream != NULL) { (gdb) print stream $26 = 0x0 (gdb) n 253 start = name; (gdb) print start $27 = 0x0 (gdb) print name $28 = 0x802974280 "torture.lck" (gdb) n 261 if((!conn->case_sensitive || !(conn->fs_capabilities & FILE_CASE_SENSITIVE_SEARCH)) && (gdb) print start $29 = 0x802974280 "torture.lck" (gdb) print name $30 = 0x802974280 "torture.lck" (gdb) n 272 if ((dirpath == NULL) && (!(dirpath = talloc_strdup(ctx,"")))) { (gdb) print dirpath $31 = 0x0 (gdb) n 282 if (posix_pathnames) { (gdb) print posix_pathnames $32 = false (gdb) n 285 ret = SMB_VFS_STAT(conn,name,&st); (gdb) print ret $33 = -1 (gdb) n 288 if (ret == 0) { (gdb) print ret $34 = -1 (gdb) print errno $35 = 2 (gdb) print strerror( errno ) $36 = 34687520 (gdb) print ret $37 = -1 (gdb) n 309 DEBUG(5,("unix_convert begin: name = %s, dirpath = %s, start = %s\n", (gdb) print conn->case_sensitive $38 = false (gdb) print conn->fs_capabilities $39 = 3 (gdb) print FILE_CASE_SENSITIVE_SEARCH No symbol "FILE_CASE_SENSITIVE_SEARCH" in current context. (gdb) n 318 if ((conn->case_sensitive || !(conn->fs_capabilities & FILE_CASE_SENSITIVE_SEARCH)) && (gdb) n 328 if (mangle_is_mangled(start, conn->params)) { (gdb) n 347 end = strchr(start, '/'); (gdb) print end $40 = 0x7fffffffe3b0 "Àåÿÿÿ\177" (gdb) n 352 if (end) { (gdb) print end $41 = 0x0 (gdb) n 356 if (pp_saved_last_component) { (gdb) print pp_saved_last_component $42 = (char **) 0x0 (gdb) n 368 if (ISDOT(start)) { (gdb) n 382 name_has_wildcard = ms_has_wild(start); (gdb) print name_has_wildcard $43 = false (gdb) n 385 if (name_has_wildcard && !allow_wcard_last_component) { (gdb) n 391 if (name_has_wildcard && end) { (gdb) n 400 if (posix_pathnames) { (gdb) print posix_pathnames $44 = false (gdb) n 403 ret = SMB_VFS_STAT(conn,name, &st); (gdb) print conn $45 = (connection_struct *) 0x802927050 (gdb) print name $46 = 0x802974280 "torture.lck" (gdb) print st $47 = {st_dev = 0, st_ino = 0, st_mode = 0, st_nlink = 0, st_uid = 0, st_gid = 0, st_rdev = 0, st_atimespec = {tv_sec = 0, tv_nsec = 0}, st_mtimespec = {tv_sec = 0, tv_nsec = 0}, st_ctimespec = {tv_sec = 0, tv_nsec = 34403206397}, st_size = 36863337, st_blocks = 140737488347600, st_blksize = 33400642, st_flags = 8, st_gen = 2, st_lspare = 0, st_birthtimespec = {tv_sec = 8061853, tv_nsec = 140737488347840}} (gdb) print ret $48 = -1 (gdb) n 406 if (ret == 0) { (gdb) print ret $49 = -1 (gdb) n 441 char *found_name = NULL; (gdb) n 444 SET_STAT_INVALID(st); (gdb) print errno $50 = 2 (gdb) n 450 errno = 0; (gdb) print found_name $51 = 0x0 (gdb) n 456 if (name_has_wildcard || (gdb) n 462 if (end) { (gdb) print found_name $52 = 0x0 (gdb) print end $53 = 0x0 (gdb) n 506 if ((errno != 0) && (errno != ENOENT) (gdb) print result $54 = {v = 0} (gdb) n 531 if (!conn->case_preserve || (gdb) list 526 * We need to strupper() or strlower() it as 527 * this conversion may be used for file creation 528 * purposes. Fix inspired by 529 * Thomas Neumann . 530 */ 531 if (!conn->case_preserve || 532 (mangle_is_8_3(start, False, 533 conn->params) && 534 !conn->short_case_preserve)) { 535 strnorm(start, (gdb) n 544 if (mangle_is_mangled(start, conn->params) (gdb) n 571 DEBUG(5,("New file %s\n",start)); (gdb) n 718 if (stream != NULL) { (gdb) print stream $55 = 0x0 (gdb) n 732 *pp_conv_path = name; (gdb) print name $56 = 0x802974280 "torture.lck" (gdb) print pp_conf_path No symbol "pp_conf_path" in current context. (gdb) print pp_conv_path $57 = (char **) 0x7fffffffe518 (gdb) print *pp_conv_path $58 = 0x0 (gdb) n 733 TALLOC_FREE(dirpath); (gdb) n 734 return NT_STATUS_OK; (gdb) n 750 } (gdb) list 745 return NT_STATUS_NO_MEMORY; 746 } 747 TALLOC_FREE(name); 748 TALLOC_FREE(dirpath); 749 return result; 750 } 751 752 /**************************************************************************** 753 Check a filename - possibly calling check_reduced_name. 754 This is called by every routine before it allows an operation on a filename. (gdb) n unlink_internals (conn=0x802927050, req=0x802974150, dirtype=22, name_in=0x8029741e0 "torture.lck", has_wild=false) at smbd/reply.c:2440 2440 if (!NT_STATUS_IS_OK(status)) { (gdb) list 2435 NTSTATUS status = NT_STATUS_OK; 2436 SMB_STRUCT_STAT sbuf; 2437 TALLOC_CTX *ctx = talloc_tos(); 2438 2439 status = unix_convert(ctx, conn, name_in, has_wild, &name, NULL, &sbuf); 2440 if (!NT_STATUS_IS_OK(status)) { 2441 return status; 2442 } 2443 2444 p = strrchr_m(name,'/'); (gdb) print status $59 = {v = 0} (gdb) print ctx $60 = (TALLOC_CTX *) 0x802974050 (gdb) print *ctx Attempt to dereference a generic pointer. (gdb) print *conn $61 = {next = 0x0, prev = 0x0, cnum = 1, params = 0x8029023f0, force_user = false, vuid_cache = {next_entry = 1, array = {{ server_info = 0x80298b350, vuid = 100, read_only = false, admin_user = false}, {server_info = 0x0, vuid = 0, read_only = false, admin_user = false} }}, dirptr = 0x0, printer = false, ipc = false, read_only = false, admin_user = false, dirpath = 0xb964fb "", connectpath = 0x80290b2e0 "/var/samba/exports/smbtorture/meddy/smbtorture", origpath = 0x80290b310 "/var/samba/exports/smbtorture/meddy/smbtorture", vfs = {ops = {connect_fn = 0x802a211b0 , disconnect = 0x802a21620 , disk_free = 0x547880 , get_quota = 0x5478e0 , set_quota = 0x547910 , get_shadow_copy_data = 0x547940 , statvfs = 0x547970 , fs_capabilities = 0x5479a0 , opendir = 0x5479b0 , readdir = 0x547ae0 , seekdir = 0x547bb0 , telldir = 0x547c80 , rewind_dir = 0x547d50 , mkdir = 0x547e10 , rmdir = 0x547fb0 , closedir = 0x548080 , open = 0x548150 , close_fn = 0x548230 , vfs_read = 0x548300 , pread = 0x548410 , write = 0x548570 , ---Type to continue, or q to quit--- pwrite = 0x548680 , lseek = 0x5487d0 , sendfile = 0x5488f0 , recvfile = 0x548a10 , rename = 0x548d30 , fsync = 0x548e20 , stat = 0x548ef0 , fstat = 0x548fc0 , lstat = 0x549090 , unlink = 0x549160 , chmod = 0x549230 , fchmod = 0x5493a0 , chown = 0x549510 , fchown = 0x5495e0 , lchown = 0x5496c0 , chdir = 0x549790 , getwd = 0x549860 , ntimes = 0x549930 , ftruncate = 0x549d90 , lock = 0x54a110 , kernel_flock = 0x54a200 , linux_setlease = 0x54a3e0 , getlock = 0x54a2e0 , symlink = 0x54a4b0 , vfs_readlink = 0x54a580 , link = 0x54a660 , mknod = 0x54a730 , realpath = 0x54a810 , notify_watch = 0x54a8f0 , chflags = 0x54a920 , file_id_create = 0x802a21730 , streaminfo = 0x54a990 , get_real_filename = 0x54abc0 , fget_nt_acl = 0x54ac10 , get_nt_acl = 0x54acf0 , ---Type to continue, or q to quit--- fset_nt_acl = 0x54add0 , chmod_acl = 0x54aeb0 , fchmod_acl = 0x54af90 , sys_acl_get_entry = 0x54b060 , sys_acl_get_tag_type = 0x54b090 , sys_acl_get_permset = 0x54b0c0 , sys_acl_get_qualifier = 0x54b0f0 , sys_acl_get_file = 0x54b110 , sys_acl_get_fd = 0x54b140 , sys_acl_clear_perms = 0x54b160 , sys_acl_add_perm = 0x54b180 , sys_acl_to_text = 0x54b1b0 , sys_acl_init = 0x54b1e0 , sys_acl_create_entry = 0x54b200 , sys_acl_set_tag_type = 0x54b230 , sys_acl_set_qualifier = 0x54b260 , sys_acl_set_permset = 0x54b290 , sys_acl_valid = 0x54b2c0 , sys_acl_set_file = 0x54b2e0 , sys_acl_set_fd = 0x54b310 , sys_acl_delete_def_file = 0x54b340 , sys_acl_get_perm = 0x54b360 , sys_acl_free_text = 0x54b390 , sys_acl_free_acl = 0x54b3b0 , sys_acl_free_qualifier = 0x54b3d0 , getxattr = 0x54b400 , ---Type to continue, or q to quit--- lgetxattr = 0x54b440 , fgetxattr = 0x54b480 , listxattr = 0x54b4c0 , llistxattr = 0x54b4f0 , flistxattr = 0x54b520 , removexattr = 0x54b560 , lremovexattr = 0x54b590 , fremovexattr = 0x54b5c0 , setxattr = 0x54b5f0 , lsetxattr = 0x54b630 , fsetxattr = 0x54b670 , aio_read = 0x54b6c0 , aio_write = 0x54b6e0 , aio_return_fn = 0x54b700 , aio_cancel = 0x54b720 , aio_error_fn = 0x54b750 , aio_fsync = 0x54b770 , aio_suspend = 0x54b7a0 , aio_force = 0x54b7d0 , is_offline = 0x54b7f0 , set_offline = 0x54b8d0 }, handles = { connect_hnd = 0x802939850, disconnect = 0x802939850, disk_free = 0x802939050, get_quota = 0x802939050, set_quota = 0x802939050, get_shadow_copy_data = 0x802939050, statvfs = 0x802939050, fs_capabilities = 0x802939050, opendir = 0x802939050, readdir = 0x802939050, seekdir = 0x802939050, ---Type to continue, or q to quit--- telldir = 0x802939050, rewind_dir = 0x802939050, mkdir = 0x802939050, rmdir = 0x802939050, closedir = 0x802939050, open = 0x802939050, close_hnd = 0x802939050, vfs_read = 0x802939050, pread = 0x802939050, write = 0x802939050, pwrite = 0x802939050, lseek = 0x802939050, sendfile = 0x802939050, recvfile = 0x802939050, rename = 0x802939050, fsync = 0x802939050, stat = 0x802939050, fstat = 0x802939050, lstat = 0x802939050, unlink = 0x802939050, chmod = 0x802939050, fchmod = 0x802939050, chown = 0x802939050, fchown = 0x802939050, lchown = 0x802939050, chdir = 0x802939050, getwd = 0x802939050, ntimes = 0x802939050, ftruncate = 0x802939050, lock = 0x802939050, kernel_flock = 0x802939050, linux_setlease = 0x802939050, getlock = 0x802939050, symlink = 0x802939050, vfs_readlink = 0x802939050, link = 0x802939050, mknod = 0x802939050, realpath = 0x802939050, notify_watch = 0x802939050, chflags = 0x802939050, file_id_create = 0x802939850, streaminfo = 0x802939050, get_real_filename = 0x802939050, fget_nt_acl = 0x802939050, get_nt_acl = 0x802939050, fset_nt_acl = 0x802939050, chmod_acl = 0x802939050, fchmod_acl = 0x802939050, sys_acl_get_entry = 0x802939050, sys_acl_get_tag_type = 0x802939050, sys_acl_get_permset = 0x802939050, sys_acl_get_qualifier = 0x802939050, sys_acl_get_file = 0x802939050, sys_acl_get_fd = 0x802939050, sys_acl_clear_perms = 0x802939050, sys_acl_add_perm = 0x802939050, sys_acl_to_text = 0x802939050, sys_acl_init = 0x802939050, sys_acl_create_entry = 0x802939050, sys_acl_set_tag_type = 0x802939050, sys_acl_set_qualifier = 0x802939050, sys_acl_set_permset = 0x802939050, sys_acl_valid = 0x802939050, ---Type to continue, or q to quit--- sys_acl_set_file = 0x802939050, sys_acl_set_fd = 0x802939050, sys_acl_delete_def_file = 0x802939050, sys_acl_get_perm = 0x802939050, sys_acl_free_text = 0x802939050, sys_acl_free_acl = 0x802939050, sys_acl_free_qualifier = 0x802939050, getxattr = 0x802939050, lgetxattr = 0x802939050, fgetxattr = 0x802939050, listxattr = 0x802939050, llistxattr = 0x802939050, flistxattr = 0x802939050, removexattr = 0x802939050, lremovexattr = 0x802939050, fremovexattr = 0x802939050, setxattr = 0x802939050, lsetxattr = 0x802939050, fsetxattr = 0x802939050, aio_read = 0x802939050, aio_write = 0x802939050, aio_return = 0x802939050, aio_cancel = 0x802939050, aio_error = 0x802939050, aio_fsync = 0x802939050, aio_suspend = 0x802939050, aio_force = 0x802939050, is_offline = 0x802939050, set_offline = 0x802939050}}, vfs_opaque = {ops = { connect_fn = 0x547850 , disconnect = 0x547870 , disk_free = 0x547880 , get_quota = 0x5478e0 , set_quota = 0x547910 , get_shadow_copy_data = 0x547940 , statvfs = 0x547970 , fs_capabilities = 0x5479a0 , opendir = 0x5479b0 , readdir = 0x547ae0 , seekdir = 0x547bb0 , ---Type to continue, or q to quit--- telldir = 0x547c80 , rewind_dir = 0x547d50 , mkdir = 0x547e10 , rmdir = 0x547fb0 , closedir = 0x548080 , open = 0x548150 , close_fn = 0x548230 , vfs_read = 0x548300 , pread = 0x548410 , write = 0x548570 , pwrite = 0x548680 , lseek = 0x5487d0 , sendfile = 0x5488f0 , recvfile = 0x548a10 , rename = 0x548d30 , fsync = 0x548e20 , stat = 0x548ef0 , fstat = 0x548fc0 , lstat = 0x549090 , unlink = 0x549160 , chmod = 0x549230 , fchmod = 0x5493a0 , chown = 0x549510 , fchown = 0x5495e0 , lchown = 0x5496c0 , chdir = 0x549790 , getwd = 0x549860 , ntimes = 0x549930 , ftruncate = 0x549d90 , lock = 0x54a110 , kernel_flock = 0x54a200 , linux_setlease = 0x54a3e0 , getlock = 0x54a2e0 , symlink = 0x54a4b0 , vfs_readlink = 0x54a580 , link = 0x54a660 , mknod = 0x54a730 , realpath = 0x54a810 , notify_watch = 0x54a8f0 , ---Type to continue, or q to quit--- chflags = 0x54a920 , file_id_create = 0x802a21730 , streaminfo = 0x54a990 , get_real_filename = 0x54abc0 , fget_nt_acl = 0x54ac10 , get_nt_acl = 0x54acf0 , fset_nt_acl = 0x54add0 , chmod_acl = 0x54aeb0 , fchmod_acl = 0x54af90 , sys_acl_get_entry = 0x54b060 , sys_acl_get_tag_type = 0x54b090 , sys_acl_get_permset = 0x54b0c0 , sys_acl_get_qualifier = 0x54b0f0 , sys_acl_get_file = 0x54b110 , sys_acl_get_fd = 0x54b140 , sys_acl_clear_perms = 0x54b160 , sys_acl_add_perm = 0x54b180 , sys_acl_to_text = 0x54b1b0 , sys_acl_init = 0x54b1e0 , sys_acl_create_entry = 0x54b200 , sys_acl_set_tag_type = 0x54b230 , sys_acl_set_qualifier = 0x54b260 , sys_acl_set_permset = 0x54b290 , sys_acl_valid = 0x54b2c0 , sys_acl_set_file = 0x54b2e0 , sys_acl_set_fd = 0x54b310 , ---Type to continue, or q to quit--- sys_acl_delete_def_file = 0x54b340 , sys_acl_get_perm = 0x54b360 , sys_acl_free_text = 0x54b390 , sys_acl_free_acl = 0x54b3b0 , sys_acl_free_qualifier = 0x54b3d0 , getxattr = 0x54b400 , lgetxattr = 0x54b440 , fgetxattr = 0x54b480 , listxattr = 0x54b4c0 , llistxattr = 0x54b4f0 , flistxattr = 0x54b520 , removexattr = 0x54b560 , lremovexattr = 0x54b590 , fremovexattr = 0x54b5c0 , setxattr = 0x54b5f0 , lsetxattr = 0x54b630 , fsetxattr = 0x54b670 , aio_read = 0x54b6c0 , aio_write = 0x54b6e0 , aio_return_fn = 0x54b700 , aio_cancel = 0x54b720 , aio_error_fn = 0x54b750 , aio_fsync = 0x54b770 , aio_suspend = 0x54b7a0 , aio_force = 0x54b7d0 , is_offline = 0x54b7f0 , ---Type to continue, or q to quit--- set_offline = 0x54b8d0 }, handles = { connect_hnd = 0x802939050, disconnect = 0x802939050, disk_free = 0x802939050, get_quota = 0x802939050, set_quota = 0x802939050, get_shadow_copy_data = 0x802939050, statvfs = 0x802939050, fs_capabilities = 0x802939050, opendir = 0x802939050, readdir = 0x802939050, seekdir = 0x802939050, telldir = 0x802939050, rewind_dir = 0x802939050, mkdir = 0x802939050, rmdir = 0x802939050, closedir = 0x802939050, open = 0x802939050, close_hnd = 0x802939050, vfs_read = 0x802939050, pread = 0x802939050, write = 0x802939050, pwrite = 0x802939050, lseek = 0x802939050, sendfile = 0x802939050, recvfile = 0x802939050, rename = 0x802939050, fsync = 0x802939050, stat = 0x802939050, fstat = 0x802939050, lstat = 0x802939050, unlink = 0x802939050, chmod = 0x802939050, fchmod = 0x802939050, chown = 0x802939050, fchown = 0x802939050, lchown = 0x802939050, chdir = 0x802939050, getwd = 0x802939050, ntimes = 0x802939050, ftruncate = 0x802939050, lock = 0x802939050, kernel_flock = 0x802939050, linux_setlease = 0x802939050, getlock = 0x802939050, symlink = 0x802939050, vfs_readlink = 0x802939050, link = 0x802939050, mknod = 0x802939050, realpath = 0x802939050, notify_watch = 0x802939050, chflags = 0x802939050, file_id_create = 0x802939850, streaminfo = 0x802939050, get_real_filename = 0x802939050, fget_nt_acl = 0x802939050, get_nt_acl = 0x802939050, fset_nt_acl = 0x802939050, chmod_acl = 0x802939050, fchmod_acl = 0x802939050, sys_acl_get_entry = 0x802939050, sys_acl_get_tag_type = 0x802939050, sys_acl_get_permset = 0x802939050, ---Type to continue, or q to quit--- sys_acl_get_qualifier = 0x802939050, sys_acl_get_file = 0x802939050, sys_acl_get_fd = 0x802939050, sys_acl_clear_perms = 0x802939050, sys_acl_add_perm = 0x802939050, sys_acl_to_text = 0x802939050, sys_acl_init = 0x802939050, sys_acl_create_entry = 0x802939050, sys_acl_set_tag_type = 0x802939050, sys_acl_set_qualifier = 0x802939050, sys_acl_set_permset = 0x802939050, sys_acl_valid = 0x802939050, sys_acl_set_file = 0x802939050, sys_acl_set_fd = 0x802939050, sys_acl_delete_def_file = 0x802939050, sys_acl_get_perm = 0x802939050, sys_acl_free_text = 0x802939050, sys_acl_free_acl = 0x802939050, sys_acl_free_qualifier = 0x802939050, getxattr = 0x802939050, lgetxattr = 0x802939050, fgetxattr = 0x802939050, listxattr = 0x802939050, llistxattr = 0x802939050, flistxattr = 0x802939050, removexattr = 0x802939050, lremovexattr = 0x802939050, fremovexattr = 0x802939050, setxattr = 0x802939050, lsetxattr = 0x802939050, fsetxattr = 0x802939050, aio_read = 0x802939050, aio_write = 0x802939050, aio_return = 0x802939050, aio_cancel = 0x802939050, aio_error = 0x802939050, aio_fsync = 0x802939050, aio_suspend = 0x802939050, aio_force = 0x802939050, is_offline = 0x802939050, set_offline = 0x802939050}}, vfs_handles = 0x802939850, server_info = 0x80298b350, force_group_gid = 4294967295, client_address = "10.0.8.115\000", 'ñ' , vuid = 100, lastused = 1250703882, lastused_count = 1250703883, used = true, num_files_open = 0, num_smb_operations = 1584484, encrypt_level = 2, encrypted_tid = false, case_sensitive = false, case_preserve = true, ---Type to continue, or q to quit--- short_case_preserve = true, fs_capabilities = 3, hide_list = 0x0, veto_list = 0x0, veto_oplock_list = 0x0, aio_write_behind_list = 0x0, dfree_info = 0x0, pending_trans = 0x0, notify_ctx = 0x802905070} (gdb) print name_in $62 = 0x8029741e0 "torture.lck" (gdb) print has_wild $63 = false (gdb) print name $64 = 0x802974280 "torture.lck" (gdb) print sbuf $65 = {st_dev = 148, st_ino = 1, st_mode = 26, st_nlink = 0, st_uid = 0, st_gid = 43466970, st_rdev = 8, st_atimespec = {tv_sec = 140737488348712, tv_nsec = 34403205296}, st_mtimespec = {tv_sec = 34403205200, tv_nsec = 13}, st_ctimespec = {tv_sec = 34403205600, tv_nsec = 13}, st_size = 34396601705, st_blocks = 140737488348464, st_blksize = 8033335, st_flags = 0, st_gen = 43466752, st_lspare = 8, st_birthtimespec = { tv_sec = 34403205611, tv_nsec = 34403205612}} (gdb) list 2445 if (!p) { 2446 directory = talloc_strdup(ctx, "."); 2447 if (!directory) { 2448 return NT_STATUS_NO_MEMORY; 2449 } 2450 mask = name; 2451 } else { 2452 *p = 0; 2453 directory = name; 2454 mask = p+1; (gdb) where #0 unlink_internals (conn=0x802927050, req=0x802974150, dirtype=22, name_in=0x8029741e0 "torture.lck", has_wild=false) at smbd/reply.c:2440 #1 0x00000000004c91a8 in reply_unlink (req=0x802974150) at smbd/reply.c:2635 #2 0x0000000000535445 in switch_message (type=6 '\006', req=0x802974150, size=68) at smbd/process.c:1486 #3 0x0000000000535503 in construct_reply (inbuf=0x8029740b0 "", size=68, unread_bytes=0, encrypted=false) at smbd/process.c:1509 #4 0x00000000005357ea in process_smb (inbuf=0x8029740b0 "", nread=68, unread_bytes=0, encrypted=false) at smbd/process.c:1566 #5 0x0000000000536712 in smbd_process () at smbd/process.c:1934 #6 0x0000000000b0f349 in main (argc=6, argv=0x7fffffffed80) at smbd/server.c:1526 (gdb) list 1526 smbd_process(); 1527 1528 namecache_shutdown(); 1529 1530 exit_server_cleanly(NULL); 1531 return(0); 1532 } (gdb) n 2444 p = strrchr_m(name,'/'); (gdb) n 2445 if (!p) { (gdb) print p $66 = 0x0 (gdb) n 2446 directory = talloc_strdup(ctx, "."); (gdb) print directory $67 = 0x0 (gdb) n 2447 if (!directory) { (gdb) print directory $68 = 0x802974490 "." (gdb) print *directory $69 = 46 '.' (gdb) n 2450 mask = name; (gdb) print mask $70 = 0x0 (gdb) n 2466 if (!VALID_STAT(sbuf) && mangle_is_mangled(mask,conn->params)) { (gdb) print mask $71 = 0x802974280 "torture.lck" (gdb) print sbuf $72 = {st_dev = 148, st_ino = 1, st_mode = 26, st_nlink = 0, st_uid = 0, st_gid = 43466970, st_rdev = 8, st_atimespec = {tv_sec = 140737488348712, tv_nsec = 34403205296}, st_mtimespec = {tv_sec = 34403205200, tv_nsec = 13}, st_ctimespec = {tv_sec = 34403205600, tv_nsec = 13}, st_size = 34396601705, st_blocks = 140737488348464, st_blksize = 8033335, st_flags = 0, st_gen = 43466752, st_lspare = 8, st_birthtimespec = { tv_sec = 34403205611, tv_nsec = 34403205612}} (gdb) n 2477 if (!has_wild) { (gdb) n 2478 directory = talloc_asprintf(ctx, (gdb) n 2482 if (!directory) { (gdb) print directory $73 = 0x8029744f0 "./torture.lck" (gdb) n 2485 if (dirtype == 0) { (gdb) print dirtype $74 = 22 (gdb) n 2489 status = check_name(conn, directory); (gdb) s check_name (conn=0x802927050, name=0x8029744f0 "./torture.lck") at smbd/filename.c:761 761 if (IS_VETO_PATH(conn, name)) { (gdb) n 771 if (!lp_widelinks(SNUM(conn)) || !lp_symlinks(SNUM(conn))) { (gdb) n 772 NTSTATUS status = check_reduced_name(conn,name); (gdb) n 773 if (!NT_STATUS_IS_OK(status)) { (gdb) print status $75 = {v = 0} (gdb) n 780 return NT_STATUS_OK; (gdb) n 781 } (gdb) n unlink_internals (conn=0x802927050, req=0x802974150, dirtype=22, name_in=0x8029741e0 "torture.lck", has_wild=false) at smbd/reply.c:2490 2490 if (!NT_STATUS_IS_OK(status)) { (gdb) list 2485 if (dirtype == 0) { 2486 dirtype = FILE_ATTRIBUTE_NORMAL; 2487 } 2488 2489 status = check_name(conn, directory); 2490 if (!NT_STATUS_IS_OK(status)) { 2491 return status; 2492 } 2493 2494 status = do_unlink(conn, req, directory, dirtype); (gdb) n 2494 status = do_unlink(conn, req, directory, dirtype); (gdb) print status $76 = {v = 0} (gdb) n 2495 if (!NT_STATUS_IS_OK(status)) { (gdb) print status $77 = {v = 3221225524} (gdb) print "should have descended into do_unlink, but it looks like it failed" $78 = "should have descended into do_unlink, but it looks like it failed" (gdb) print count $79 = 0 (gdb) list 2490 if (!NT_STATUS_IS_OK(status)) { 2491 return status; 2492 } 2493 2494 status = do_unlink(conn, req, directory, dirtype); 2495 if (!NT_STATUS_IS_OK(status)) { 2496 return status; 2497 } 2498 2499 count++; (gdb) n 2496 return status; (gdb) n 2582 } (gdb) n reply_unlink (req=0x802974150) at smbd/reply.c:2637 2637 if (!NT_STATUS_IS_OK(status)) { (gdb) print status $80 = {v = 3221225524} (gdb) list 2632 2633 DEBUG(3,("reply_unlink : %s\n",name)); 2634 2635 status = unlink_internals(conn, req, dirtype, name, 2636 path_contains_wcard); 2637 if (!NT_STATUS_IS_OK(status)) { 2638 if (open_was_deferred(req->mid)) { 2639 /* We have re-scheduled this call. */ 2640 END_PROFILE(SMBunlink); 2641 return; (gdb) print req->mid $81 = 5708 (gdb) n 2638 if (open_was_deferred(req->mid)) { (gdb) n 2640 END_PROFILE(SMBunlink); (gdb) print req $82 = (struct smb_request *) 0x802974150 (gdb) print *req $83 = {flags2 = 51203, smbpid = 7236, mid = 5708, vuid = 100, tid = 1, wct = 1 '\001', inbuf = 0x8029740b0 "", outbuf = 0x0, unread_bytes = 0, encrypted = false, conn = 0x802927050} (gdb) print status $84 = {v = 3221225524} (gdb) n 2652 } (gdb) print "maybe should have descended into reply_nterror" $85 = "maybe should have descended into reply_nterror" (gdb) n switch_message (type=6 '\006', req=0x802974150, size=68) at smbd/process.c:1487 1487 return req->conn; (gdb) list 1482 reply_doserror(req, ERRSRV, ERRaccess); 1483 return conn; 1484 } 1485 1486 smb_messages[type].fn(req); 1487 return req->conn; 1488 } 1489 1490 /**************************************************************************** 1491 Construct a reply to the incoming packet. (gdb) print type $86 = 6 '\006' (gdb) n 1488 } (gdb) print req->conn $87 = (connection_struct *) 0x802927050 (gdb) print *(req->conn) $88 = {next = 0x0, prev = 0x0, cnum = 1, params = 0x8029023f0, force_user = false, vuid_cache = {next_entry = 1, array = {{ server_info = 0x80298b350, vuid = 100, read_only = false, admin_user = false}, {server_info = 0x0, vuid = 0, read_only = false, admin_user = false} }}, dirptr = 0x0, printer = false, ipc = false, read_only = false, admin_user = false, dirpath = 0xb964fb "", connectpath = 0x80290b2e0 "/var/samba/exports/smbtorture/meddy/smbtorture", origpath = 0x80290b310 "/var/samba/exports/smbtorture/meddy/smbtorture", vfs = {ops = {connect_fn = 0x802a211b0 , disconnect = 0x802a21620 , disk_free = 0x547880 , get_quota = 0x5478e0 , set_quota = 0x547910 , get_shadow_copy_data = 0x547940 , statvfs = 0x547970 , fs_capabilities = 0x5479a0 , opendir = 0x5479b0 , readdir = 0x547ae0 , seekdir = 0x547bb0 , telldir = 0x547c80 , rewind_dir = 0x547d50 , mkdir = 0x547e10 , rmdir = 0x547fb0 , closedir = 0x548080 , open = 0x548150 , close_fn = 0x548230 , vfs_read = 0x548300 , pread = 0x548410 , write = 0x548570 , ---Type to continue, or q to quit--- pwrite = 0x548680 , lseek = 0x5487d0 , sendfile = 0x5488f0 , recvfile = 0x548a10 , rename = 0x548d30 , fsync = 0x548e20 , stat = 0x548ef0 , fstat = 0x548fc0 , lstat = 0x549090 , unlink = 0x549160 , chmod = 0x549230 , fchmod = 0x5493a0 , chown = 0x549510 , fchown = 0x5495e0 , lchown = 0x5496c0 , chdir = 0x549790 , getwd = 0x549860 , ntimes = 0x549930 , ftruncate = 0x549d90 , lock = 0x54a110 , kernel_flock = 0x54a200 , linux_setlease = 0x54a3e0 , getlock = 0x54a2e0 , symlink = 0x54a4b0 , vfs_readlink = 0x54a580 , link = 0x54a660 , mknod = 0x54a730 , realpath = 0x54a810 , notify_watch = 0x54a8f0 , chflags = 0x54a920 , file_id_create = 0x802a21730 , streaminfo = 0x54a990 , get_real_filename = 0x54abc0 , fget_nt_acl = 0x54ac10 , get_nt_acl = 0x54acf0 , ---Type to continue, or q to quit--- fset_nt_acl = 0x54add0 , chmod_acl = 0x54aeb0 , fchmod_acl = 0x54af90 , sys_acl_get_entry = 0x54b060 , sys_acl_get_tag_type = 0x54b090 , sys_acl_get_permset = 0x54b0c0 , sys_acl_get_qualifier = 0x54b0f0 , sys_acl_get_file = 0x54b110 , sys_acl_get_fd = 0x54b140 , sys_acl_clear_perms = 0x54b160 , sys_acl_add_perm = 0x54b180 , sys_acl_to_text = 0x54b1b0 , sys_acl_init = 0x54b1e0 , sys_acl_create_entry = 0x54b200 , sys_acl_set_tag_type = 0x54b230 , sys_acl_set_qualifier = 0x54b260 , sys_acl_set_permset = 0x54b290 , sys_acl_valid = 0x54b2c0 , sys_acl_set_file = 0x54b2e0 , sys_acl_set_fd = 0x54b310 , sys_acl_delete_def_file = 0x54b340 , sys_acl_get_perm = 0x54b360 , sys_acl_free_text = 0x54b390 , sys_acl_free_acl = 0x54b3b0 , sys_acl_free_qualifier = 0x54b3d0 , getxattr = 0x54b400 , ---Type to continue, or q to quit--- lgetxattr = 0x54b440 , fgetxattr = 0x54b480 , listxattr = 0x54b4c0 , llistxattr = 0x54b4f0 , flistxattr = 0x54b520 , removexattr = 0x54b560 , lremovexattr = 0x54b590 , fremovexattr = 0x54b5c0 , setxattr = 0x54b5f0 , lsetxattr = 0x54b630 , fsetxattr = 0x54b670 , aio_read = 0x54b6c0 , aio_write = 0x54b6e0 , aio_return_fn = 0x54b700 , aio_cancel = 0x54b720 , aio_error_fn = 0x54b750 , aio_fsync = 0x54b770 , aio_suspend = 0x54b7a0 , aio_force = 0x54b7d0 , is_offline = 0x54b7f0 , set_offline = 0x54b8d0 }, handles = { connect_hnd = 0x802939850, disconnect = 0x802939850, disk_free = 0x802939050, get_quota = 0x802939050, set_quota = 0x802939050, get_shadow_copy_data = 0x802939050, statvfs = 0x802939050, fs_capabilities = 0x802939050, opendir = 0x802939050, readdir = 0x802939050, seekdir = 0x802939050, ---Type to continue, or q to quit--- telldir = 0x802939050, rewind_dir = 0x802939050, mkdir = 0x802939050, rmdir = 0x802939050, closedir = 0x802939050, open = 0x802939050, close_hnd = 0x802939050, vfs_read = 0x802939050, pread = 0x802939050, write = 0x802939050, pwrite = 0x802939050, lseek = 0x802939050, sendfile = 0x802939050, recvfile = 0x802939050, rename = 0x802939050, fsync = 0x802939050, stat = 0x802939050, fstat = 0x802939050, lstat = 0x802939050, unlink = 0x802939050, chmod = 0x802939050, fchmod = 0x802939050, chown = 0x802939050, fchown = 0x802939050, lchown = 0x802939050, chdir = 0x802939050, getwd = 0x802939050, ntimes = 0x802939050, ftruncate = 0x802939050, lock = 0x802939050, kernel_flock = 0x802939050, linux_setlease = 0x802939050, getlock = 0x802939050, symlink = 0x802939050, vfs_readlink = 0x802939050, link = 0x802939050, mknod = 0x802939050, realpath = 0x802939050, notify_watch = 0x802939050, chflags = 0x802939050, file_id_create = 0x802939850, streaminfo = 0x802939050, get_real_filename = 0x802939050, fget_nt_acl = 0x802939050, get_nt_acl = 0x802939050, fset_nt_acl = 0x802939050, chmod_acl = 0x802939050, fchmod_acl = 0x802939050, sys_acl_get_entry = 0x802939050, sys_acl_get_tag_type = 0x802939050, sys_acl_get_permset = 0x802939050, sys_acl_get_qualifier = 0x802939050, sys_acl_get_file = 0x802939050, sys_acl_get_fd = 0x802939050, sys_acl_clear_perms = 0x802939050, sys_acl_add_perm = 0x802939050, sys_acl_to_text = 0x802939050, sys_acl_init = 0x802939050, sys_acl_create_entry = 0x802939050, sys_acl_set_tag_type = 0x802939050, sys_acl_set_qualifier = 0x802939050, sys_acl_set_permset = 0x802939050, sys_acl_valid = 0x802939050, ---Type to continue, or q to quit--- sys_acl_set_file = 0x802939050, sys_acl_set_fd = 0x802939050, sys_acl_delete_def_file = 0x802939050, sys_acl_get_perm = 0x802939050, sys_acl_free_text = 0x802939050, sys_acl_free_acl = 0x802939050, sys_acl_free_qualifier = 0x802939050, getxattr = 0x802939050, lgetxattr = 0x802939050, fgetxattr = 0x802939050, listxattr = 0x802939050, llistxattr = 0x802939050, flistxattr = 0x802939050, removexattr = 0x802939050, lremovexattr = 0x802939050, fremovexattr = 0x802939050, setxattr = 0x802939050, lsetxattr = 0x802939050, fsetxattr = 0x802939050, aio_read = 0x802939050, aio_write = 0x802939050, aio_return = 0x802939050, aio_cancel = 0x802939050, aio_error = 0x802939050, aio_fsync = 0x802939050, aio_suspend = 0x802939050, aio_force = 0x802939050, is_offline = 0x802939050, set_offline = 0x802939050}}, vfs_opaque = {ops = { connect_fn = 0x547850 , disconnect = 0x547870 , disk_free = 0x547880 , get_quota = 0x5478e0 , set_quota = 0x547910 , get_shadow_copy_data = 0x547940 , statvfs = 0x547970 , fs_capabilities = 0x5479a0 , opendir = 0x5479b0 , readdir = 0x547ae0 , seekdir = 0x547bb0 , ---Type to continue, or q to quit--- telldir = 0x547c80 , rewind_dir = 0x547d50 , mkdir = 0x547e10 , rmdir = 0x547fb0 , closedir = 0x548080 , open = 0x548150 , close_fn = 0x548230 , vfs_read = 0x548300 , pread = 0x548410 , write = 0x548570 , pwrite = 0x548680 , lseek = 0x5487d0 , sendfile = 0x5488f0 , recvfile = 0x548a10 , rename = 0x548d30 , fsync = 0x548e20 , stat = 0x548ef0 , fstat = 0x548fc0 , lstat = 0x549090 , unlink = 0x549160 , chmod = 0x549230 , fchmod = 0x5493a0 , chown = 0x549510 , fchown = 0x5495e0 , lchown = 0x5496c0 , chdir = 0x549790 , getwd = 0x549860 , ntimes = 0x549930 , ftruncate = 0x549d90 , lock = 0x54a110 , kernel_flock = 0x54a200 , linux_setlease = 0x54a3e0 , getlock = 0x54a2e0 , symlink = 0x54a4b0 , vfs_readlink = 0x54a580 , link = 0x54a660 , mknod = 0x54a730 , realpath = 0x54a810 , notify_watch = 0x54a8f0 , ---Type to continue, or q to quit--- chflags = 0x54a920 , file_id_create = 0x802a21730 , streaminfo = 0x54a990 , get_real_filename = 0x54abc0 , fget_nt_acl = 0x54ac10 , get_nt_acl = 0x54acf0 , fset_nt_acl = 0x54add0 , chmod_acl = 0x54aeb0 , fchmod_acl = 0x54af90 , sys_acl_get_entry = 0x54b060 , sys_acl_get_tag_type = 0x54b090 , sys_acl_get_permset = 0x54b0c0 , sys_acl_get_qualifier = 0x54b0f0 , sys_acl_get_file = 0x54b110 , sys_acl_get_fd = 0x54b140 , sys_acl_clear_perms = 0x54b160 , sys_acl_add_perm = 0x54b180 , sys_acl_to_text = 0x54b1b0 , sys_acl_init = 0x54b1e0 , sys_acl_create_entry = 0x54b200 , sys_acl_set_tag_type = 0x54b230 , sys_acl_set_qualifier = 0x54b260 , sys_acl_set_permset = 0x54b290 , sys_acl_valid = 0x54b2c0 , sys_acl_set_file = 0x54b2e0 , sys_acl_set_fd = 0x54b310 , ---Type to continue, or q to quit--- sys_acl_delete_def_file = 0x54b340 , sys_acl_get_perm = 0x54b360 , sys_acl_free_text = 0x54b390 , sys_acl_free_acl = 0x54b3b0 , sys_acl_free_qualifier = 0x54b3d0 , getxattr = 0x54b400 , lgetxattr = 0x54b440 , fgetxattr = 0x54b480 , listxattr = 0x54b4c0 , llistxattr = 0x54b4f0 , flistxattr = 0x54b520 , removexattr = 0x54b560 , lremovexattr = 0x54b590 , fremovexattr = 0x54b5c0 , setxattr = 0x54b5f0 , lsetxattr = 0x54b630 , fsetxattr = 0x54b670 , aio_read = 0x54b6c0 , aio_write = 0x54b6e0 , aio_return_fn = 0x54b700 , aio_cancel = 0x54b720 , aio_error_fn = 0x54b750 , aio_fsync = 0x54b770 , aio_suspend = 0x54b7a0 , aio_force = 0x54b7d0 , is_offline = 0x54b7f0 , ---Type to continue, or q to quit--- set_offline = 0x54b8d0 }, handles = { connect_hnd = 0x802939050, disconnect = 0x802939050, disk_free = 0x802939050, get_quota = 0x802939050, set_quota = 0x802939050, get_shadow_copy_data = 0x802939050, statvfs = 0x802939050, fs_capabilities = 0x802939050, opendir = 0x802939050, readdir = 0x802939050, seekdir = 0x802939050, telldir = 0x802939050, rewind_dir = 0x802939050, mkdir = 0x802939050, rmdir = 0x802939050, closedir = 0x802939050, open = 0x802939050, close_hnd = 0x802939050, vfs_read = 0x802939050, pread = 0x802939050, write = 0x802939050, pwrite = 0x802939050, lseek = 0x802939050, sendfile = 0x802939050, recvfile = 0x802939050, rename = 0x802939050, fsync = 0x802939050, stat = 0x802939050, fstat = 0x802939050, lstat = 0x802939050, unlink = 0x802939050, chmod = 0x802939050, fchmod = 0x802939050, chown = 0x802939050, fchown = 0x802939050, lchown = 0x802939050, chdir = 0x802939050, getwd = 0x802939050, ntimes = 0x802939050, ftruncate = 0x802939050, lock = 0x802939050, kernel_flock = 0x802939050, linux_setlease = 0x802939050, getlock = 0x802939050, symlink = 0x802939050, vfs_readlink = 0x802939050, link = 0x802939050, mknod = 0x802939050, realpath = 0x802939050, notify_watch = 0x802939050, chflags = 0x802939050, file_id_create = 0x802939850, streaminfo = 0x802939050, get_real_filename = 0x802939050, fget_nt_acl = 0x802939050, get_nt_acl = 0x802939050, fset_nt_acl = 0x802939050, chmod_acl = 0x802939050, fchmod_acl = 0x802939050, sys_acl_get_entry = 0x802939050, sys_acl_get_tag_type = 0x802939050, sys_acl_get_permset = 0x802939050, ---Type to continue, or q to quit--- sys_acl_get_qualifier = 0x802939050, sys_acl_get_file = 0x802939050, sys_acl_get_fd = 0x802939050, sys_acl_clear_perms = 0x802939050, sys_acl_add_perm = 0x802939050, sys_acl_to_text = 0x802939050, sys_acl_init = 0x802939050, sys_acl_create_entry = 0x802939050, sys_acl_set_tag_type = 0x802939050, sys_acl_set_qualifier = 0x802939050, sys_acl_set_permset = 0x802939050, sys_acl_valid = 0x802939050, sys_acl_set_file = 0x802939050, sys_acl_set_fd = 0x802939050, sys_acl_delete_def_file = 0x802939050, sys_acl_get_perm = 0x802939050, sys_acl_free_text = 0x802939050, sys_acl_free_acl = 0x802939050, sys_acl_free_qualifier = 0x802939050, getxattr = 0x802939050, lgetxattr = 0x802939050, fgetxattr = 0x802939050, listxattr = 0x802939050, llistxattr = 0x802939050, flistxattr = 0x802939050, removexattr = 0x802939050, lremovexattr = 0x802939050, fremovexattr = 0x802939050, setxattr = 0x802939050, lsetxattr = 0x802939050, fsetxattr = 0x802939050, aio_read = 0x802939050, aio_write = 0x802939050, aio_return = 0x802939050, aio_cancel = 0x802939050, aio_error = 0x802939050, aio_fsync = 0x802939050, aio_suspend = 0x802939050, aio_force = 0x802939050, is_offline = 0x802939050, set_offline = 0x802939050}}, vfs_handles = 0x802939850, server_info = 0x80298b350, force_group_gid = 4294967295, client_address = "10.0.8.115\000", 'ñ' , vuid = 100, lastused = 1250703882, lastused_count = 1250703883, used = true, num_files_open = 0, num_smb_operations = 1584484, encrypt_level = 2, encrypted_tid = false, case_sensitive = false, case_preserve = true, ---Type to continue, or q to quit--- short_case_preserve = true, fs_capabilities = 3, hide_list = 0x0, veto_list = 0x0, veto_oplock_list = 0x0, aio_write_behind_list = 0x0, dfree_info = 0x0, pending_trans = 0x0, notify_ctx = 0x802905070} (gdb) (gdb) n construct_reply (inbuf=0x8029740b0 "", size=68, unread_bytes=0, encrypted=false) at smbd/process.c:1511 1511 if (req->unread_bytes) { (gdb) list 1506 } 1507 init_smb_request(req, (uint8 *)inbuf, unread_bytes, encrypted); 1508 1509 conn = switch_message(type, req, size); 1510 1511 if (req->unread_bytes) { 1512 /* writeX failed. drain socket. */ 1513 if (drain_socket(smbd_server_fd(), req->unread_bytes) != 1514 req->unread_bytes) { 1515 smb_panic("failed to drain pending bytes"); (gdb) print req->unread_bytes $89 = 0 (gdb) n 1520 if (req->outbuf == NULL) { (gdb) n 1537 } (gdb) print req-> outbuf $90 = (unsigned char *) 0x0 (gdb) n process_smb (inbuf=0x8029740b0 "", nread=68, unread_bytes=0, encrypted=false) at smbd/process.c:1568 1568 trans_num++; (gdb) list 1563 1564 show_msg(inbuf); 1565 1566 construct_reply(inbuf,nread,unread_bytes,encrypted); 1567 1568 trans_num++; 1569 } 1570 1571 /**************************************************************************** 1572 Return a string containing the function name of a SMB command. (gdb) print trans_num $91 = 1584487 (gdb) n 1569 } (gdb) n smbd_process () at smbd/process.c:1936 1936 TALLOC_FREE(inbuf); (gdb) list 1931 return; 1932 } 1933 1934 process_smb(inbuf, inbuf_len, unread_bytes, encrypted); 1935 1936 TALLOC_FREE(inbuf); 1937 1938 num_smbs++; 1939 1940 /* The timeout_processing function isn't run nearly (gdb) print inbuf $92 = 0x8029740b0 "" (gdb) print inbuf_len $93 = 68 (gdb) print unread_bytes $94 = 0 (gdb) print status $95 = {v = 0} (gdb) n 1938 num_smbs++; (gdb) n 1947 if ((num_smbs % 50) == 0 && need_to_check_log_size()) { (gdb) n 1951 TALLOC_FREE(frame); (gdb) n 1952 } (gdb) n 1915 char *inbuf = NULL; (gdb) n 1916 size_t inbuf_len = 0; (gdb) n 1917 bool encrypted = false; (gdb) n 1918 TALLOC_CTX *frame = talloc_stackframe_pool(8192); (gdb) n 1920 errno = 0; (gdb) break Breakpoint 2 at 0x5365e5: file smbd/process.c, line 1920. (gdb) disable 2 (gdb)