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 '<username>:<IP>' instead of '<username> :<IP>'.

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 20000000 /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", "20000000", "/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, 0x100000) = 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, 0x7fbffff410)            = 0
setrlimit(RLIMIT_DATA, {rlim_cur=20000000, rlim_max=RLIM_INFINITY}) = 0
getrlimit(0x3, 0x7fbffff410)            = 0
setrlimit(RLIMIT_STACK, {rlim_cur=20000000, rlim_max=RLIM_INFINITY}) = 0
getrlimit(0x8, 0x7fbffff410)            = 0
setrlimit(RLIMIT_MEMLOCK, {rlim_cur=20000000, rlim_max=RLIM_INFINITY}) = 0
getrlimit(0x9, 0x7fbffff410)            = 0
setrlimit(RLIMIT_AS, {rlim_cur=20000000, 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, 0x100000) = 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, [], 0x4000000}, NULL, 8) = 0
rt_sigaction(SIGTERM, {0x401ab0, [], 0x4000000}, 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_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
getsockname(3, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("0.0.0.0")}, [1801439859538133008]) = 0
listen(3, 20)                           = 0
fcntl(3, F_GETFL)                       = 0x802 (flags O_RDWR|O_NONBLOCK|O_LARGEFILE)
fcntl(3, F_SETFL, O_RDWR)               = 0
setgroups(1, [616])                     = 0
setgid(616)                             = 0
setuid(616)                             = 0
close(0)                                = 0
close(1)                                = 0
write(2, "tcpserver: status: 0/20\n", 24tcpserver: status: 0/20
) = 24
rt_sigprocmask(SIG_UNBLOCK, [CHLD], NULL, 8) = 0
accept(3, {sa_family=AF_INET, sin_port=htons(32805), sin_addr=inet_addr("192.168.5.50")}, [2702159785012232208]) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], NULL, 8) = 0
write(2, "tcpserver: status: 1/20\n", 24tcpserver: status: 1/20
) = 24
fork()                                  = 25507
tcpserver: pid 25507 from 192.168.5.50
close(0)                                = 0
tcpserver: ok 25507 0:192.168.5.50:25 :192.168.5.50::32805
rt_sigprocmask(SIG_UNBLOCK, [CHLD], NULL, 8) = 0
accept(3, domain invalid brooksroy.com

0x7fbffff420, [16])           = ? ERESTARTSYS (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 0], WNOHANG, NULL) = 25507
write(2, "tcpserver: end 25507 status 0\n", 30tcpserver: end 25507 status 0
) = 30
write(2, "tcpserver: status: 0/20\n", 24tcpserver: status: 0/20
) = 24
wait4(-1, 0x7fbffff1c4, WNOHANG, NULL)  = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
rt_sigprocmask(SIG_BLOCK, [CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], NULL, 8) = 0

Thanks,
Brooks

Reply via email to