It happens with Exim 4.20 and 4.12, but not with 3.36 from the
OpenBSD ports collection. OpenBSD 3.3 on sparc64, default Exim
configuration file.
Exim closes the incoming SMTP connection immediately after it
receives "RCPT TO:" (almost always), leaving no logs behind.
Sniffers see Exim receiving the packet with RCPT and sending TCP
FIN back (closing connection). I tried running Exim with full
debug on, and got this (with the sender address replaced with
LOCAL_PART@DOMAIN):
<snip snip, verifying sender>
18:29:45 13168 check verify = sender
18:29:45 13168 ---0 Get 8054432 336 deliver.c 97
18:29:45 13168 ---0 Get 8054768 24 string.c 344
18:29:45 13168 ---0 Get 8054792 24 string.c 344
18:29:45 13168 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
18:29:45 13168 Verifying LOCAL_PART@DOMAIN
18:29:45 13168 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
18:29:45 13168 Considering LOCAL_PART@DOMAIN
18:29:45 13168 ---0 Get 8054816 16 string.c 382
18:29:45 13168 ---0 Get 8054832 8 deliver.c 3826
18:29:45 13168 ---0 Get 8054840 8 string.c 382
18:29:45 13168 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
18:29:45 13168 routing LOCAL_PART@DOMAIN
18:29:45 13168 --------> dnslookup router <--------
18:29:45 13168 local_part=LOCAL_PART domain=DOMAIN
18:29:45 13168 checking domains
18:29:45 13168 ---0 Get 8054848 16 string.c 382
18:29:45 13168 ---0 Get 8054864 40 string.c 344
18:29:45 13168 ---0 Get 8054904 24 string.c 344
18:29:45 13168 DOMAIN in "@"? no (end of list)
18:29:45 13168 DOMAIN in "! +local_domains"? yes (end of list)
18:29:45 13168 cached lookup data = NULL
18:29:45 13168 calling dnslookup router
18:29:45 13168 dnslookup router called for LOCAL_PART@DOMAIN
18:29:45 13168 domain = DOMAIN
18:29:45 13168 --Malloc 8012288 181 exim.c 41 16416 1634
18:29:45 13168 DNS lookup of DOMAIN (MX) succeeded
18:29:45 13168 ---0 Get 8054928 24 string.c 344
18:29:45 13168 ---0 Get 8054952 48 host.c 1830
18:29:45 13168 ---0 Get 8055000 24 string.c 344
18:29:45 13168 ---0 Get 8055024 40 dns.c 694
18:29:45 13168 ---0 Get 8055064 48 string.c 344
18:29:45 13168 192.117.107.3 in "0.0.0.0 : 127.0.0.0/8"? no (end of list)
18:29:45 13168 ---0 Get 8055112 40 dns.c 694
18:29:45 13168 ---0 Get 8055152 48 string.c 344
18:29:45 13168 192.114.47.13 in "0.0.0.0 : 127.0.0.0/8"? no (end of list)
18:29:45 13168 ---1 Get 8026488 64 ../src/os.c 649
18:29:45 13168 Actual local interface address is 127.0.0.1 (lo0)
18:29:45 13168 ---1 Get 8026552 64 ../src/os.c 649
18:29:45 13168 Actual local interface address is 10.0.0.200 (hme0)
18:29:45 1159 child 13168 ended: status=0xa
Am I correct in assuming that status 0xA means the child process
received SIGBUS?
When Exim is compiled, gcc gives the following warning several
times:
store.c: In function `store_get_3':
store.c:170: warning: cast from pointer to integer of different size
For the reference:
sizeof(int) == 4
sizeof(long) == sizeof(long long) == sizeof(void *) == 8
$ gcc -v
Reading specs from /usr/lib/gcc-lib/sparc64-unknown-openbsd3.3/2.95.3/specs
gcc version 2.95.3 20010125 (prerelease, propolice)
$ uname -a
OpenBSD <HOSTNAME> 3.3 GENERIC#56 sparc64
snippets of dmesg:
OpenBSD 3.3 (GENERIC) #56: Sat Mar 29 12:48:19 MST 2003
deraadt@???:/usr/src/sys/arch/sparc64/compile/GENERIC
mainbus0 (root): Sun Ultra 1 UPA/SBus (UltraSPARC 167MHz)
cpu0 at mainbus0: SUNW,UltraSPARC @ 167.004 MHz, version 0 FPU
cpu0: physical 32K instruction (32 b/l), 16K data (32 b/l), 512K external (64 b/l)
I apologise if this message is messy and confusing, I'm quite
brain dead at this point.
Thanks,
Vadik.
--
The ill-formed Orange
Fails to satisfy the eye:
Segmentation fault.