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

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