[Exim] 4.20 on OpenBSD 3.3, sparc64, dies.

Startseite
Nachricht löschen
Nachricht beantworten
Autor: Vadim Vygonets
Datum:  
To: exim-users
Betreff: [Exim] 4.20 on OpenBSD 3.3, sparc64, dies.
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.