Peter Palmreuther wrote:
Where
does the space character after '.com' comes from? Seems there's
something wrong with Base64-decoding / handing decoded values over to
vchkpw. I might be wrong, but all logs similar to this found in my
system logs have ':' instead of ' :'.
I'd say this is a case for strace/truss, to see if qmail already write
the blank into fd #3 or if vchpw insertes it, and in the former case
it's a file for 'dbg' or similar (and a '-g2' compiled qmail), to
figure who inserts it. In the latter case one has to 'dbg' vchpw to
see when this blank appears first.
Peter,
Here is a copy of the strace log:
ps1:/service/qmail-smtpd # strace /usr/local/bin/softlimit -m 2000
/usr/local/bin/tcpserver -v -H -R -l 0 -x
/usr/local/vpopmail/etc/tcp.smtp.cdb -c 20 -u 616 -g 616 0 25
/var/qmail/bin/qmail-smtpd /usr/local/vpopmail/bin/vchkpw /bin/true
2>&1
execve("/usr/local/bin/softlimit", ["/usr/local/bin/softlimit", "-m",
"2000", "/usr/local/bin/tcpserver", "-v", "-H", "-R", "-l", "0",
"-x", "/usr/local/vpopmail/etc/tcp.smtp.cdb", "-c", "20", "-u", "616",
"-g", "616", "0", "25", "/var/qmail/bin/qmail-smtpd",
"/usr/local/vpopmail/bin/vchkpw", "/bin/true"], [/* 44 vars */]) = 0
uname({sys="Linux", node="ps1", ...}) = 0
brk(0) = 0x504000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2a9556b000
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=43645, ...}) = 0
mmap(NULL, 43645, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2a9556c000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\335\1"..., 640) =
640
fstat(3, {st_mode=S_IFREG|0755, st_size=1534814, ...}) = 0
mmap(NULL, 2365888, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0x2a9566d000
mprotect(0x2a95791000, 1169856, PROT_NONE) = 0
mmap(0x2a9586d000, 253952, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
3, 0x10) = 0x2a9586d000
mmap(0x2a958ab000, 14784, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2a958ab000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2a958af000
munmap(0x2a9556c000, 43645) = 0
getrlimit(0x2, 0x7fb410) = 0
setrlimit(RLIMIT_DATA, {rlim_cur=2000, rlim_max=RLIM_INFINITY}) = 0
getrlimit(0x3, 0x7fb410) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=2000, rlim_max=RLIM_INFINITY}) = 0
getrlimit(0x8, 0x7fb410) = 0
setrlimit(RLIMIT_MEMLOCK, {rlim_cur=2000, rlim_max=RLIM_INFINITY})
= 0
getrlimit(0x9, 0x7fb410) = 0
setrlimit(RLIMIT_AS, {rlim_cur=2000, rlim_max=RLIM_INFINITY}) = 0
execve("/usr/local/bin/tcpserver", ["/usr/local/bin/tcpserver", "-v",
"-H", "-R", "-l", "0", "-x", "/usr/local/vpopmail/etc/tcp.smtp"...,
"-c", "20", "-u", "616", "-g", "616", "0", "25", ...], [/* 44 vars */])
= 0
uname({sys="Linux", node="ps1", ...}) = 0
brk(0) = 0x50d000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2a9556b000
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=43645, ...}) = 0
mmap(NULL, 43645, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2a9556c000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\335\1"..., 640) =
640
fstat(3, {st_mode=S_IFREG|0755, st_size=1534814, ...}) = 0
mmap(NULL, 2365888, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0x2a9566d000
mprotect(0x2a95791000, 1169856, PROT_NONE) = 0
mmap(0x2a9586d000, 253952, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
3, 0x10) = 0x2a9586d000
mmap(0x2a958ab000, 14784, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2a958ab000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2a958af000
munmap(0x2a9556c000, 43645) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], NULL, 8) = 0
rt_sigaction(SIGCHLD, {0x401ac0, [], 0x400}, NULL, 8) = 0
rt_sigaction(SIGTERM, {0x401ab0, [], 0x400}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, NULL, 8) = 0
open("/etc/dnsrewrite", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file
or directory)
open("/etc/resolv.conf", O_RDONLY|O_NONBLOCK) = 3
read(3, "nameserver 127.0.0.1\nnameserver "..., 64) = 64
read(3, "t\n", 64) = 2
read(3, "", 64) = 0
close(3) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
fcntl(3, F_GETFL) = 0x2 (flags O_RDWR|O_LARGEFILE)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [-4611694294829367295], 4) = 0
bind(3, {sa