ntlm_auth seg faults with Squid-2.5stable4

Dave Augustus davea at support.kcm.org
Fri Nov 21 14:31:58 GMT 2003


Hello all,

I am hoping some of you have some insight into the problems I am    
experiencing. I have been discussing this with others on the squid list 
but it appears to be *more* relevant here, based on recent findings.   
You can read the entire discussion at the following thread:
    http://www.squid-cache.org/mail-archive/squid-users/200311/0795.html


    Here is the setup, (all of which are within a VMWare environment):
    Windows 2003 Enterprise Server running AD
    Windows 2000 Workstation running IE6 Sp1
    Redhat 9 running: Samba 3.0.0, Kerberos 1.3.1, Squid-2.5Stable4
    Here is the problem in a nutshell: ntlm_auth seg faults when used by
    squid for user authentication to a W2k3 AD server.
    Here is the strace output from the ntlm_auth process that dies
    attempting to perform the procedure:
    "YR\n", 4096)                   = 3
    time(NULL)                              = 1069420262


    geteuid32()                             = 81
    write(2, "[2003/11/21 07:11:02, 10] utils/"..., 71) = 71
    geteuid32()                             = 81
    write(2, "  Got \'YR\' from squid (length: 2"..., 35) = 35
    time(NULL)                              = 1069420262
    geteuid32()                             = 81
    write(2, "[2003/11/21 07:11:02, 10] utils/"..., 78) = 78
    geteuid32()                             = 81
    write(2, "  got NTLMSSP packet:\n", 22) = 22
    open("/dev/urandom", O_RDONLY|O_LARGEFILE) = 3
    read(3, "\341\337\313,\332<\3\4", 8)    = 8
    uname({sys="Linux", node="caleb", ...}) = 0
    gettimeofday({1069420262, 921369}, NULL) = 0
    getpid()                                = 1987
    open("/etc/resolv.conf", O_RDONLY)      = 4
    fstat64(4, {st_mode=S_IFREG|0644, st_size=71, ...}) = 0
    mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1,
    0) = 0x4045f000
    read(4, "search localdomain\n\nnameserver 6"..., 4096) = 71
    read(4, "", 4096)                       = 0
    close(4)                                = 0
    munmap(0x4045f000, 4096)                = 0
    socket(PF_UNIX, SOCK_STREAM, 0)         = 4
    connect(4, {sa_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) =
-1
    ENOENT (No such file or directory)
    close(4)                                = 0
    open("/etc/nsswitch.conf", O_RDONLY)    = 4
    fstat64(4, {st_mode=S_IFREG|0644, st_size=1712, ...}) = 0
    mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1,
    0) = 0x4045f000
    read(4, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1712
    read(4, "", 4096)                       = 0
    close(4)                                = 0
    munmap(0x4045f000, 4096)                = 0
    open("/etc/ld.so.cache", O_RDONLY)      = 4
    fstat64(4, {st_mode=S_IFREG|0644, st_size=16384, ...}) = 0
    old_mmap(NULL, 16384, PROT_READ, MAP_PRIVATE, 4, 0) = 0x4045f000
    close(4)                                = 0
    open("/lib/libnss_files.so.2", O_RDONLY) = 4
    read(4,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\35\0"...,
    512) = 512
    fstat64(4, {st_mode=S_IFREG|0755, st_size=52472, ...}) = 0
    old_mmap(NULL, 47068, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) =
    0x40463000
    old_mmap(0x4046e000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED,
    4, 0xa000) = 0x4046e000
    close(4)                                = 0
    munmap(0x4045f000, 16384)               = 0
    open("/etc/host.conf", O_RDONLY)        = 4
    fstat64(4, {st_mode=S_IFREG|0644, st_size=17, ...}) = 0
    mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1,
    0) = 0x4045f000
    read(4, "order hosts,bind\n", 4096)     = 17
    read(4, "", 4096)                       = 0
    close(4)                                = 0
    munmap(0x4045f000, 4096)                = 0
    open("/etc/hosts", O_RDONLY)            = 4
    fcntl64(4, F_GETFD)                     = 0
    fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
    fstat64(4, {st_mode=S_IFREG|0644, st_size=329, ...}) = 0
    mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1,
    0) = 0x4045f000
    read(4, "# Do not remove the following li"..., 4096) = 329
    close(4)                                = 0
    munmap(0x4045f000, 4096)                = 0
    uname({sys="Linux", node="caleb", ...}) = 0
    write(1, "TT TlRMTVNTUAACAAAAAAAAADAAAAACA"..., 68) = 68
    time(NULL)                              = 1069420262
    geteuid32()                             = 81
    write(2, "[2003/11/21 07:11:02, 10] utils/"..., 78) = 78
    geteuid32()                             = 81
    write(2, "  NTLMSSP challenge\n", 20)   = 20
    read(0, "KK TlRMTVNTUAADAAAAGAAYAFIAAAAYA"..., 4096) = 180
    time(NULL)                              = 1069420262
    geteuid32()                             = 81
    write(2, "[2003/11/21 07:11:02, 10] utils/"..., 71) = 71
    geteuid32()                             = 81
    write(2, "  Got \'KK TlRMTVNTUAADAAAAGAAYAF"..., 214) = 214
    time(NULL)                              = 1069420263
    geteuid32()                             = 81
    write(2, "[2003/11/21 07:11:03, 10] utils/"..., 78) = 78
    geteuid32()                             = 81
    write(2, "  got NTLMSSP packet:\n", 22) = 22
    time(NULL)                              = 1069420263
    geteuid32()                             = 81
    write(2, "[2003/11/21 07:11:03, 10] lib/ut"..., 53) = 53
    geteuid32()                             = 81
    write(2, "  [000] 4E 54 4C 4D 53 53 50 00 "..., 76) = 76
    geteuid32()                             = 81
    write(2, "  [010] 52 00 00 00 18 00 18 00 "..., 76) = 76
    geteuid32()                             = 81
    write(2, "  [020] 40 00 00 00 06 00 06 00 "..., 76) = 76
    geteuid32()                             = 81
    write(2, "  [030] 4A 00 00 00 00 00 00 00 "..., 76) = 76
    geteuid32()                             = 81
    write(2, "  [040] 42 55 47 53 53 55 52 46 "..., 76) = 76
    geteuid32()                             = 81
    write(2, "  [050] 39 38 9E DE 60 1C C6 CC "..., 76) = 76
    geteuid32()                             = 81
    write(2, "  [060] B8 44 EB 35 C1 75 17 AB "..., 76) = 76
    geteuid32()                             = 81
    write(2, "  [070] 9B 40 20 D3 86 56 08 12 "..., 76) = 76
    geteuid32()                             = 81
    write(2, "  [080] 19 3A 40                "..., 63) = 63
    time(NULL)                              = 1069420263
    geteuid32()                             = 81
    write(2, "[2003/11/21 07:11:03, 3] libsmb/"..., 67) = 67
    geteuid32()                             = 81
    write(2, "  Got user=[SURFER] domain=[BUGS"..., 73) = 73
    getpid()                                = 1987
    getpid()                                = 1987
    getpid()                                = 1987
    lstat64("/tmp/.winbindd", {st_mode=S_IFDIR|0755, st_size=4096, ...})
= 0
    lstat64("/tmp/.winbindd/pipe", {st_mode=S_IFSOCK|0777, st_size=0,
...})
    = 0
    socket(PF_UNIX, SOCK_STREAM, 0)         = 4
    fcntl64(4, F_GETFD)                     = 0
    fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
    connect(4, {sa_family=AF_UNIX, path="/tmp/.winbindd/pipe"}, 110) = 0
    getpid()                                = 1987
    getpid()                                = 1987
    select(5, [4], NULL, NULL, {0, 0})      = 0 (Timeout)
    write(4, "
\6\0\0\0\0\0\0\303\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
    1568) = 1568
    read(4, "\24\5\0\0\1\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
    1300) = 1300
    getpid()                                = 1987
    getpid()                                = 1987
    select(5, [4], NULL, NULL, {0, 0})      = 0 (Timeout)
    write(4, "
\6\0\0(\0\0\0\303\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
    1568) = 1568
    read(4,
"9\5\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
    1300) = 1300
    read(4, "/var/cache/samba/winbindd_privil"..., 37) = 37
    lstat64("/var/cache/samba/winbindd_privileged",
{st_mode=S_IFDIR|0750,
    st_size=4096, ...}) = 0
    lstat64("/var/cache/samba/winbindd_privileged/pipe",
    {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
    socket(PF_UNIX, SOCK_STREAM, 0)         = 5
    fcntl64(5, F_GETFD)                     = 0
    fcntl64(5, F_SETFD, FD_CLOEXEC)         = 0
    connect(5, {sa_family=AF_UNIX,
    path="/var/cache/samba/winbindd_privileged/pipe"}, 110) = 0
    close(4)                                = 0
    select(6, [5], NULL, NULL, {0, 0})      = 0 (Timeout)
    write(5, "
\6\0\0\r\0\0\0\303\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
    1568) = 1568
    read(5, "\24\5\0\0\1\0\0\0\0\0\0\0NT_STATUS_OK\0\0\0\0\0\0\0\0"...,
    1300) = 1300
    --- SIGSEGV (Segmentation fault) @ 0 (0) ---
    
    The thread mentioned previously has all the setup, compile
statements,
    config file settings, etc that are used in this setup.
    
    Thanks for your help in this matter,
    
    Dave Augustus




More information about the samba-technical mailing list