[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Problem (sigsegv) with checkpassword



Ok problem vanished after inserting some debuging code and did not
reapper after removing the debug code .....

> -----Original Message-----
> From: Ulrich Petri [mailto:ulope@xxxxxx] 
> Sent: Saturday, May 25, 2002 5:06 PM
> To: qmail-sql@xxxxxxxxxx
> Subject: Problem (sigsegv) with checkpassword
> 
> 
> Hi List,
> 
> i installed qmail-1.03 with patch 0.21 and checkpassword 0.90 
> with patch
> 0.19.
> qmail-getpw work fine as deliveries via 'echo "to: yxz@xxxxxxxxxx" |
> qmail-inject' are.
> My problem lies with checkpassword.
> 
> when i try to authenticate with qmail-popup i get the following:
> ("xy@xxxxxxxxxxxx" with pw. "blahpassw" is a valid db user)
> 
> root:~# /var/qmail/bin/qmail-popup blah /bin/checkpassword pwd
> +OK <7287.1022330339@blah>
> user xy@xxxxxxxxxxxx
> +OK
> pass blahpassw
> -ERR aack, child crashed
> 
> 
> i ran strace on qmail-popup which gave me the following:
> 
> root:~# strace -p 7287 -f -F
> select(1, [0], NULL, NULL, {1106, 610000}) = ? ERESTARTNOHAND (To be
> restarted)
> --- SIGWINCH (Window changed) ---
> select(1, [0], NULL, NULL, {1101, 460000}) = 1 (in [0], left {1089,
> 150000})
> read(0, "user xy@xxxxxxxxxxxx\n", 128)  = 21
> select(2, NULL, [1], NULL, {1200, 0})   = 1 (out [1], left {1200, 0})
> write(1, "+OK \r\n", 6)                 = 6
> select(1, [0], NULL, NULL, {1200, 0})   = 1 (in [0], left {1184,
> 740000})
> read(0, "pass blahpassw\n", 128)        = 15
> fcntl64(1, F_GETFL)                     = 0x8002 (flags
> O_RDWR|O_LARGEFILE)
> close(2)                                = 0
> fcntl64(1, F_DUPFD, 2)                  = 2
> close(3)                                = -1 EBADF (Bad file 
> descriptor)
> pipe([3, 4])                            = 0
> fork()                                  = 7292
> [pid  7292] close(4)                    = 0
> [pid  7292] rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0
> [pid  7292] execve("/bin/checkpassword", 
> ["/bin/checkpassword", "pwd"],
> [/* 14 vars */]) = 0
> [pid  7292] brk(0)                      = 0x804d2ac
> [pid  7292] open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such
> file or directory)
> [pid  7292] open("/etc/ld.so.cache", O_RDONLY) = 4
> [pid  7292] fstat64(4, {st_mode=S_IFREG|0644, st_size=8205, ...}) = 0
> [pid  7292] old_mmap(NULL, 8205, PROT_READ, MAP_PRIVATE, 4, 0) =
> 0x40016000
> [pid  7292] close(4)                    = 0
> [pid  7292] open("/lib/libshadow.so.0", O_RDONLY) = 4
> [pid  7292] read(4,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0,\0\000"..., 1024) =
> 1024
> [pid  7292] fstat64(4, {st_mode=S_IFREG|0755, st_size=54041, ...}) = 0
> [pid  7292] old_mmap(NULL, 96960, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4,
> 0) = 0x40019000
> [pid  7292] mprotect(0x40022000, 60096, PROT_NONE) = 0
> [pid  7292] old_mmap(0x40022000, 8192, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 4, 0x8000) = 0x40022000
> [pid  7292] old_mmap(0x40024000, 51904, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40024000
> [pid  7292] close(4)                    = 0
> [pid  7292] open("/lib/libcrypt.so.1", O_RDONLY) = 4
> [pid  7292] read(4,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\t\0"..., 1024) =
> 1024
> [pid  7292] fstat64(4, {st_mode=S_IFREG|0755, st_size=70800, ...}) = 0
> [pid  7292] old_mmap(NULL, 182396, PROT_READ|PROT_EXEC, 
> MAP_PRIVATE, 4,
> 0) = 0x40031000
> [pid  7292] mprotect(0x40036000, 161916, PROT_NONE) = 0
> [pid  7292] old_mmap(0x40036000, 4096, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 4, 0x4000) = 0x40036000
> [pid  7292] old_mmap(0x40037000, 157820, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40037000
> [pid  7292] close(4)                    = 0
> [pid  7292] open("/usr/local/lib/libmysqlclient.so.10", O_RDONLY) = 4
> [pid  7292] read(4,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320o\0"..., 1024) =
> 1024
> [pid  7292] fstat64(4, {st_mode=S_IFREG|0755, st_size=186125, 
> ...}) = 0
> [pid  7292] old_mmap(NULL, 160480, PROT_READ|PROT_EXEC, 
> MAP_PRIVATE, 4,
> 0) = 0x4005e000
> [pid  7292] mprotect(0x40080000, 21216, PROT_NONE) = 0
> [pid  7292] old_mmap(0x40080000, 24576, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 4, 0x21000) = 0x40080000
> [pid  7292] close(4)                    = 0
> [pid  7292] open("/lib/libc.so.6", O_RDONLY) = 4
> [pid  7292] read(4,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0X\226\1"..., 1024) =
> 1024
> [pid  7292] fstat64(4, {st_mode=S_IFREG|0755, 
> st_size=5050295, ...}) = 0
> [pid  7292] old_mmap(NULL, 4096, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40086000
> [pid  7292] old_mmap(NULL, 1209184, PROT_READ|PROT_EXEC, 
> MAP_PRIVATE, 4,
> 0) = 0x40087000
> [pid  7292] mprotect(0x401a4000, 41824, PROT_NONE) = 0
> [pid  7292] old_mmap(0x401a4000, 28672, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 4, 0x11c000) = 0x401a4000
> [pid  7292] old_mmap(0x401ab000, 13152, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401ab000
> [pid  7292] close(4)                    = 0
> [pid  7292] open("/lib/libmisc.so.0", O_RDONLY) = 4
> [pid  7292] read(4,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p4\0\000"..., 1024) =
> 1024
> [pid  7292] fstat64(4, {st_mode=S_IFREG|0755, st_size=74296, ...}) = 0
> [pid  7292] old_mmap(NULL, 70624, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4,
> 0) = 0x401af000
> [pid  7292] mprotect(0x401bd000, 13280, PROT_NONE) = 0
> [pid  7292] old_mmap(0x401bd000, 4096, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 4, 0xd000) = 0x401bd000
> [pid  7292] old_mmap(0x401be000, 9184, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401be000
> [pid  7292] close(4)                    = 0
> [pid  7292] open("/lib/libnsl.so.1", O_RDONLY) = 4
> [pid  7292] read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0
> ;\0\000"..., 1024) = 1024
> [pid  7292] fstat64(4, {st_mode=S_IFREG|0755, st_size=353016, 
> ...}) = 0
> [pid  7292] old_mmap(NULL, 85148, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4,
> 0) = 0x401c1000
> [pid  7292] mprotect(0x401d3000, 11420, PROT_NONE) = 0
> [pid  7292] old_mmap(0x401d3000, 4096, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 4, 0x11000) = 0x401d3000
> [pid  7292] old_mmap(0x401d4000, 7324, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401d4000
> [pid  7292] close(4)                    = 0
> [pid  7292] open("/lib/libm.so.6", O_RDONLY) = 4
> [pid  7292] read(4,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2007\0"..., 1024) =
> 1024
> [pid  7292] fstat64(4, {st_mode=S_IFREG|0755, st_size=567587, 
> ...}) = 0
> [pid  7292] old_mmap(NULL, 134500, PROT_READ|PROT_EXEC, 
> MAP_PRIVATE, 4,
> 0) = 0x401d6000
> [pid  7292] mprotect(0x401f6000, 3428, PROT_NONE) = 0
> [pid  7292] old_mmap(0x401f6000, 4096, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 4, 0x1f000) = 0x401f6000
> [pid  7292] close(4)                    = 0
> [pid  7292] mprotect(0x4005e000, 139264, PROT_READ|PROT_WRITE) = 0
> [pid  7292] mprotect(0x4005e000, 139264, PROT_READ|PROT_EXEC) = 0
> [pid  7292] munmap(0x40016000, 8205)    = 0
> [pid  7292] read(3,  <unfinished ...>
> [pid  7287] close(3)                    = 0
> [pid  7287] write(4, "xy@xxxxxxxxxxxx\0blahpassw\0<7287."..., 49) = 49
> [pid  7292] <... read resumed> 
> "xy@xxxxxxxxxxxx\0blahpassw\0<7287."...,
> 513) = 49
> [pid  7292] read(3,  <unfinished ...>
> [pid  7287] close(4)                    = 0
> [pid  7292] <... read resumed> "", 464) = 0
> [pid  7292] close(3)                    = 0
> [pid  7292] chdir("/var/qmail")         = 0
> [pid  7292] brk(0)                      = 0x804d2ac
> [pid  7292] brk(0x804d42c)              = 0x804d42c
> [pid  7292] brk(0x804e000)              = 0x804e000
> [pid  7292] open("control/sqlserver", O_RDONLY) = 3
> [pid  7292] fstat64(3, {st_mode=S_IFREG|0440, st_size=535, ...}) = 0
> [pid  7292] old_mmap(NULL, 4096, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40016000
> [pid  7292] read(3, "query_timeout 5\nconnection_timeo"..., 
> 4096) = 535
> [pid  7292] read(3, "", 4096)           = 0
> [pid  7292] brk(0x8051000)              = 0x8051000
> [pid  7292] time([1022330465])          = 1022330465
> [pid  7292] open("/etc/localtime", O_RDONLY) = 4
> [pid  7292] fstat64(4, {st_mode=S_IFREG|0644, st_size=837, ...}) = 0
> [pid  7292] old_mmap(NULL, 4096, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
> [pid  7292] read(4,
> "TZif\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\10"..., 
> 4096) = 837
> [pid  7292] close(4)                    = 0
> [pid  7292] munmap(0x40017000, 4096)    = 0
> [pid  7292] rt_sigaction(SIGPIPE, {0x4015b0ac, [], 0x4000000},
> {SIG_DFL}, 8) = 0
> [pid  7292] socket(PF_UNIX, SOCK_DGRAM, 0) = 4
> [pid  7292] fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
> [pid  7292] connect(4, {sin_family=AF_UNIX, path="/dev/log"}, 16) = 0
> [pid  7292] send(4, "<21>May 25 14:41:05 checkpasswor"..., 86, 0) = 86
> [pid  7292] rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0
> [pid  7292] open("/etc/nsswitch.conf", O_RDONLY) = 5
> [pid  7292] fstat64(5, {st_mode=S_IFREG|0644, st_size=238, ...}) = 0
> [pid  7292] old_mmap(NULL, 4096, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
> [pid  7292] read(5, "# Begin /etc/nsswitch.conf\n\npass"..., 
> 4096) = 238
> [pid  7292] read(5, "", 4096)           = 0
> [pid  7292] close(5)                    = 0
> [pid  7292] munmap(0x40017000, 4096)    = 0
> [pid  7292] open("/etc/ld.so.cache", O_RDONLY) = 5
> [pid  7292] fstat64(5, {st_mode=S_IFREG|0644, st_size=8205, ...}) = 0
> [pid  7292] old_mmap(NULL, 8205, PROT_READ, MAP_PRIVATE, 5, 0) =
> 0x401f7000
> [pid  7292] close(5)                    = 0
> [pid  7292] open("/lib/i686/mmx/libnss_db.so.2", O_RDONLY) = -1 ENOENT
> (No such file or directory)
> [pid  7292] stat64("/lib/i686/mmx", 0xbffff37c) = -1 ENOENT (No such
> file or directory)
> [pid  7292] open("/lib/i686/libnss_db.so.2", O_RDONLY) = -1 ENOENT (No
> such file or directory)
> [pid  7292] stat64("/lib/i686", 0xbffff37c) = -1 ENOENT (No 
> such file or
> directory)
> [pid  7292] open("/lib/mmx/libnss_db.so.2", O_RDONLY) = -1 ENOENT (No
> such file or directory)
> [pid  7292] stat64("/lib/mmx", 0xbffff37c) = -1 ENOENT (No 
> such file or
> directory)
> [pid  7292] open("/lib/libnss_db.so.2", O_RDONLY) = -1 ENOENT (No such
> file or directory)
> [pid  7292] stat64("/lib", {st_mode=S_IFDIR|0755, 
> st_size=4096, ...}) =
> 0
> [pid  7292] open("/usr/lib/i686/mmx/libnss_db.so.2", O_RDONLY) = -1
> ENOENT (No such file or directory)
> [pid  7292] stat64("/usr/lib/i686/mmx", 0xbffff37c) = -1 
> ENOENT (No such
> file or directory)
> [pid  7292] open("/usr/lib/i686/libnss_db.so.2", O_RDONLY) = -1 ENOENT
> (No such file or directory)
> [pid  7292] stat64("/usr/lib/i686", 0xbffff37c) = -1 ENOENT (No such
> file or directory)
> [pid  7292] open("/usr/lib/mmx/libnss_db.so.2", O_RDONLY) = -1 ENOENT
> (No such file or directory)
> [pid  7292] stat64("/usr/lib/mmx", 0xbffff37c) = -1 ENOENT 
> (No such file
> or directory)
> [pid  7292] open("/usr/lib/libnss_db.so.2", O_RDONLY) = -1 ENOENT (No
> such file or directory)
> [pid  7292] stat64("/usr/lib", {st_mode=S_IFDIR|0755, st_size=4096,
> ...}) = 0
> [pid  7292] munmap(0x401f7000, 8205)    = 0
> [pid  7292] open("/etc/ld.so.cache", O_RDONLY) = 5
> [pid  7292] fstat64(5, {st_mode=S_IFREG|0644, st_size=8205, ...}) = 0
> [pid  7292] old_mmap(NULL, 8205, PROT_READ, MAP_PRIVATE, 5, 0) =
> 0x401f7000
> [pid  7292] close(5)                    = 0
> [pid  7292] open("/lib/libnss_files.so.2", O_RDONLY) = 5
> [pid  7292] read(5,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\35\0\000"...
> , 1024) =
> 1024
> [pid  7292] fstat64(5, {st_mode=S_IFREG|0755, st_size=232346, 
> ...}) = 0
> [pid  7292] old_mmap(NULL, 37408, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5,
> 0) = 0x401fa000
> [pid  7292] mprotect(0x40202000, 4640, PROT_NONE) = 0
> [pid  7292] old_mmap(0x40202000, 8192, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 5, 0x7000) = 0x40202000
> [pid  7292] close(5)                    = 0
> [pid  7292] munmap(0x401f7000, 8205)    = 0
> [pid  7292] open("/etc/services", O_RDONLY) = 5
> [pid  7292] fcntl64(5, F_GETFD)         = 0
> [pid  7292] fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
> [pid  7292] fstat64(5, {st_mode=S_IFREG|0644, st_size=5580, ...}) = 0
> [pid  7292] old_mmap(NULL, 4096, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
> [pid  7292] read(5, "#\n# Network services, Internet s"..., 
> 4096) = 4096
> [pid  7292] read(5, "Network dictionary\nwebster\t\t765/"..., 4096) =
> 1484
> [pid  7292] read(5, "", 4096)           = 0
> [pid  7292] close(5)                    = 0
> [pid  7292] munmap(0x40017000, 4096)    = 0
> [pid  7292] rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
> [pid  7292] rt_sigaction(SIGALRM, {0x80496ac, [ALRM],
> SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0
> [pid  7292] rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
> [pid  7292] alarm(5)                    = 0
> [pid  7292] socket(PF_UNIX, SOCK_STREAM, 0) = 5
> [pid  7292] fcntl64(5, F_GETFL)         = 0x2 (flags O_RDWR)
> [pid  7292] connect(5, {sin_family=AF_UNIX, path="/tmp/mysql.sock"},
> 110) = 0
> [pid  7292] brk(0x8054000)              = 0x8054000
> [pid  7292] setsockopt(5, SOL_IP, IP_TOS, [8], 4) = -1 EOPNOTSUPP
> (Operation not supported)
> [pid  7292] setsockopt(5, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
> [pid  7292] read(5, ",\0\0\0", 4)       = 4
> [pid  7292] read(5, "\n3.23.49-log\0n\1\0\0Ds8Y9Ob~\0,\0\10\2\0\0"...,
> 44) = 44
> [pid  7292] open("/usr/local/mysql/share/mysql/charsets/Index",
> O_RDONLY|O_LARGEFILE) = 6
> [pid  7292] fstat64(6, {st_mode=S_IFREG|0644, st_size=549, ...}) = 0
> [pid  7292] old_mmap(NULL, 4096, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
> [pid  7292] read(6, "# sql/share/charsets/Index\n#\n# T"..., 
> 4096) = 549
> [pid  7292] read(6, "", 4096)           = 0
> [pid  7292] close(6)                    = 0
> [pid  7292] munmap(0x40017000, 4096)    = 0
> [pid  7292] write(5, "\34\0\0\1\r 
> \0\0\0qmail_rw\0HVSYJOKN\0qmail", 32)
> = 32
> [pid  7292] read(5, "\3\0\0\2", 4)      = 4
> [pid  7292] read(5, "\0\0\0", 3)        = 3
> [pid  7292] alarm(0)                    = 5
> [pid  7292] rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
> [pid  7292] alarm(5)                    = 0
> [pid  7292] fcntl64(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
> [pid  7292] read(5, 0x804fc30, 8192)    = -1 EAGAIN (Resource
> temporarily unavailable)
> [pid  7292] fcntl64(5, F_SETFL, O_RDWR) = 0
> [pid  7292] write(5, "\307\0\0\0\3SELECT 
> login,uid,gid,home,p"..., 203)
> = 203
> [pid  7292] read(5, "\1\0\0\1", 4)      = 4
> [pid  7292] read(5, "\5", 1)            = 1
> [pid  7292] read(5, "\27\0\0\2", 4)     = 4
> [pid  7292] read(5, "\6passwd\5login\3@\0\0\1\375\3\3@\0", 23) = 23
> [pid  7292] read(5, "\25\0\0\3", 4)     = 4
> [pid  7292] read(5, "\6passwd\3uid\3\v\0\0\1\3\3\1\0\0", 21) = 21
> [pid  7292] read(5, "\25\0\0\4", 4)     = 4
> [pid  7292] read(5, "\6passwd\3gid\3\v\0\0\1\3\3\1\0\0", 21) = 21
> [pid  7292] read(5, "\26\0\0\5", 4)     = 4
> [pid  7292] read(5, "\6passwd\4home\3\310\0\0\1\375\3\1\0\0", 22) = 22
> [pid  7292] read(5, "\32\0\0\6", 4)     = 4
> [pid  7292] read(5, "\6passwd\10password\3\r\0\0\1\375\3\0\0\0", 26) =
> 26
> [pid  7292] read(5, "\1\0\0\7", 4)      = 4
> [pid  7292] read(5, "\376", 1)          = 1
> [pid  7292] brk(0x8056000)              = 0x8056000
> [pid  7292] read(5, "(\0\0\10", 4)      = 4
> [pid  7292] read(5, 
> "\2xy\003888\003888\33/sites/blaahhost.de/"..., 40)
> = 40
> [pid  7292] --- SIGSEGV (Segmentation fault) ---
> --- SIGCHLD (Child exited) ---
> wait4(7292, [WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV], 0, 
> NULL) = 7292
> select(2, NULL, [1], NULL, {1200, 0})   = 1 (out [1], left {1200, 0})
> write(1, "-ERR aack, child crashed\r\n", 26) = 26
> _exit(1)                                = ?
> 
> 
> i'm using linux-from-scratch with:
> kernel 2.4.18
> glibc 2.2.5
> i compiled all the stuff with gcc 2.95.3
> 
> 
> i hope anyone of you can help me.
> 
> Ciao Ulrich
>