Mailing List Archive

Exim 4.95-RC2 released
Dear Exim users and maintainers,

thank you for the feedback we got since the recent release candidate.
Especially thanks to Wolfgang B (Uni Vienna) who reported the DKIM stuff around b367453a0.

We expect this RC being the last one before the final release.

Changes between RC1 and RC2:

* 6b69b7102 - Fix small typo (26 minutes ago) <Neil Youngman>
* 87f15ee44 - Logging: specific error for tainted tag in debug filename (4 days ago) <Jeremy Harris>
* 8de97e5b7 - DKIM: Avoid spurious tls read timeout after signing failure (7 days ago) <Jeremy Harris>
* 4c51d3e7c - Fix name of option in error log line (12 days ago) <Jeremy Harris>
* 593107c7f - Docs: addition mention of lookup caching option (12 days ago) <Jeremy Harris>
* bb0b94392 - Docs: fix option crossref (12 days ago) <Jeremy Harris>
* b367453a0 - DKIM: fix verify under TLS & chunking, with pipelined next command (13 days ago) <Jeremy Harris>
* 15a44d749 - Testsuite: testcases for DKIM under TLS (13 days ago) <Jeremy Harris>
* 5078e5337 - Testsuite: testcase shuffling (13 days ago) <Jeremy Harris>
* 7712454eb - Drop support for MacOS (darwin) (13 days ago) <Jeremy Harris>
* dd9ac646f - Drop support for MacOS (darwin) (2 weeks ago) <Heiko Schlittermann (HS12-RIPE)>
* 9614a79a3 - Fix ClamAV command send (2 weeks ago) <Jeremy Harris>
* 60a4ceafe - Testsuite: add missing mask / ipv6 expansion (2 weeks ago) <Jeremy Harris>
* 730acb140 - Docs: add warning on use of envelope_to_add (2 weeks ago) <Jeremy Harris>
* 86d51a7b1 - Builtin macros for ACL conditions & modifiers (3 weeks ago) <Jeremy Harris>
* 0ac642d41 - Update comments in example config file to match current default for TLS (4 weeks ago) <Jeremy Harris>

The commit b367453a0 has been backported to 4.94.2+fixes, as the bug
actually exists there.

As usual we ask *you* to do as much testing as possible and provide us
feedback. This covers build issues with unusual libraries, runtime
issues in unusual environments and any other kind of things that should
be fixed.

The Exim 4.95-RC2 is available

- as tarball: https://ftp.exim.org/pub/exim/exim4/test
- directly from Git: https://git.exim.org
tag exim-4.95-RC2

The tarball checksums are signed using the same GPG key as I used to
sign this message (Key-ID: D0BFD6B9ECA5694A6F149DCEAF4CC676A6B6C142),
as the tag and tagged commit are.

For changes since the previous stable version, please see the RC0
announcement: https://lists.exim.org/lurker/message/20210715.212328.6bec444b.en.html

Best regards from Dresden/Germany
Viele Grüße aus Dresden
Heiko Schlittermann
--
SCHLITTERMANN.de ---------------------------- internet & unix support -
Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} -
gnupg encrypted messages are welcome --------------- key ID: F69376CE -
Re: Exim 4.95-RC2 released [ In reply to ]
Hello.

On Tue, Aug 24, 2021 at 05:12:12PM +0200, Heiko Schlittermann via Exim-users wrote:
> The Exim 4.95-RC2 is available
>
> - as tarball: https://ftp.exim.org/pub/exim/exim4/test
> - directly from Git: https://git.exim.org
> tag exim-4.95-RC2

After last night upgrade from 4.94.2 to 4.95~RC2 (on Debian/testing 32bit)
several segfaults were recorded. All were generated after MAIL FROM, and
some ACLs for MAIL have been run, then segfault: no records for RCPT TO.

I enabled coredumps for suid binaries, and the result is below.

------------------------------------------------------------------------
2021-09-05 17:04:45.806 [30203] SIGSEGV (maybe attempt to write to immutable memory)

# gdb -c core.30203 -f /usr/sbin/exim4
[...]
Core was generated by `/usr/sbin/exim4 -bd -q1m'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0xf71d5b0d in ?? () from /usr/lib/i386-linux-gnu/libgnutls.so.30
(gdb) bt full
#0 0xf71d5b0d in ?? () from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#1 0xf71d5be6 in gnutls_x509_trust_list_get_issuer ()
from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#2 0xf71d6613 in gnutls_x509_trust_list_verify_crt2 ()
from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#3 0xf7161647 in ?? () from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#4 0xf7161f3f in gnutls_certificate_verify_peers ()
from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#5 0xf7161fd0 in gnutls_certificate_verify_peers2 ()
from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#6 0x5663599b in ?? ()
No symbol table info available.
#7 0x56637c2b in ?? ()
No symbol table info available.
#8 0x566696c6 in ?? ()
No symbol table info available.
#9 0x56643e56 in ?? ()
No symbol table info available.
#10 0x565a6642 in ?? ()
No symbol table info available.
#11 0x565a868e in ?? ()
No symbol table info available.
#12 0x565abcb1 in ?? ()
No symbol table info available.
#13 0x56623fd1 in ?? ()
No symbol table info available.
#14 0x565afe00 in ?? ()
No symbol table info available.
#15 0x565a0116 in ?? ()
No symbol table info available.
#16 0xf7335e46 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
No symbol table info available.
#17 0x565a3ce1 in _start ()
No symbol table info available.

------------------------------------------------------------------------

2021-09-05 18:30:08.969 [38991] SIGSEGV (maybe attempt to write to immutable memory)

# gdb -c core.38991 -f /usr/sbin/exim4
[...]
Core was generated by `/usr/sbin/exim4 -bd -q1m'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0xf71d5b0d in ?? () from /usr/lib/i386-linux-gnu/libgnutls.so.30
(gdb) bt full
#0 0xf71d5b0d in ?? () from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#1 0xf71d5be6 in gnutls_x509_trust_list_get_issuer ()
from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#2 0xf71d6613 in gnutls_x509_trust_list_verify_crt2 ()
from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#3 0xf7161647 in ?? () from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#4 0xf7161f3f in gnutls_certificate_verify_peers ()
from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#5 0xf7161fd0 in gnutls_certificate_verify_peers2 ()
from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#6 0x5663599b in ?? ()
No symbol table info available.
#7 0x56637c2b in ?? ()
No symbol table info available.
#8 0x566696c6 in ?? ()
No symbol table info available.
#9 0x56643e56 in ?? ()
No symbol table info available.
#10 0x565a6642 in ?? ()
No symbol table info available.
#11 0x565a868e in ?? ()
No symbol table info available.
#12 0x565abcb1 in ?? ()
No symbol table info available.
#13 0x56623fd1 in ?? ()
No symbol table info available.
#14 0x565afe00 in ?? ()
No symbol table info available.
#15 0x565a0116 in ?? ()
No symbol table info available.
#16 0xf7335e46 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
No symbol table info available.
#17 0x565a3ce1 in _start ()
No symbol table info available.
------------------------------------------------------------------------

FYI: Exim (from Debian package exim4-daemon-heavy) was upgraded 04.09.2021.
Packages libgnutls30 and libgnutls-dane0 were upgraded 01.09.2021
from 3.7.1-5 to 3.7.2-2, but there were no segfaults in time period
bitween those upgrades. So its seems problem is not in libgnutls.
Maybe in last version of Exim sometimes happen corruption of data
passed to gnutls_x509_trust_list_get_issuer().
--
Eugene Berdnikov

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.95-RC2 released [ In reply to ]
On 05/09/2021 18:44, Evgeniy Berdnikov via Exim-users wrote:
> After last night upgrade from 4.94.2 to 4.95~RC2 (on Debian/testing 32bit)
> several segfaults were recorded.

Does Debian provide, or can you build for your environment,
an unstripped ("debuginfo", possibly) exim binary?

--
Cheers,
Jeremy

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.95-RC2 released [ In reply to ]
On Sun, Sep 05, 2021 at 07:02:10PM +0100, Jeremy Harris via Exim-users wrote:
> On 05/09/2021 18:44, Evgeniy Berdnikov via Exim-users wrote:
> > After last night upgrade from 4.94.2 to 4.95~RC2 (on Debian/testing 32bit)
> > several segfaults were recorded.
>
> Does Debian provide, or can you build for your environment,
> an unstripped ("debuginfo", possibly) exim binary?

I built unstripped binary, let's wait for segfaults.
--
Eugene Berdnikov

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.95-RC2 released [ In reply to ]
On Sun, Sep 05, 2021 at 11:13:45PM +0300, Evgeniy Berdnikov via Exim-users wrote:
> I built unstripped binary, let's wait for segfaults.

Several happened last night, 1st coredump is below.

2021-09-06 06:13:18.702 [116601] SIGSEGV (maybe attempt to write to immutable memory)

# echo bt full | gdb -c core.116601 -f /usr/sbin/exim4
------------------------------------------------------------------------
GNU gdb (Debian 10.1-2) 10.1.90.20210103-git
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/sbin/exim4...
[New LWP 116601]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/sbin/exim4 -bd -q1m'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0xf71d5b0d in ?? () from /usr/lib/i386-linux-gnu/libgnutls.so.30
(gdb) #0 0xf71d5b0d in ?? () from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#1 0xf71d5be6 in gnutls_x509_trust_list_get_issuer ()
from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#2 0xf71d6613 in gnutls_x509_trust_list_verify_crt2 ()
from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#3 0xf7161647 in ?? () from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#4 0xf7161f3f in gnutls_certificate_verify_peers ()
from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#5 0xf7161fd0 in gnutls_certificate_verify_peers2 ()
from /usr/lib/i386-linux-gnu/libgnutls.so.30
No symbol table info available.
#6 0x5663599b in verify_certificate (state=<optimized out>, errstr=0xffe872d0)
at tls-gnu.c:2518
rc = <optimized out>
verify = 1460649816
__FUNCTION__ = "verify_certificate"
#7 0x56637c2b in tls_client_start (cctx=0x57ccb5a8, conn_args=0x57cbb54c,
cookie=0x57ca1ff4, tlsp=0x56714ee0 <tls_out>, errstr=0xffe872d0)
at tls-gnu.c:3591
host = 0x57ca32bc
tb = <optimized out>
ob = 0x570fbe6c
rc = 0
state = 0x570fcfb4
cipher_list = <optimized out>
require_ocsp = 0
request_ocsp = 1
__FUNCTION__ = "tls_client_start"
#8 0x566696c6 in smtp_setup_conn (sx=<optimized out>,
suppress_tls=<optimized out>) at smtp.c:2673
buffer2 = "220 2.7.0 Ready to start TLS\000t\350\377;\200\070\367<s\350\377.\347hV@t\350\377\006\000\000\000<s\350\377`1\312W\027\000\000\000`1\312W\002ru\000\214&qV.\347hV`1\312Wl-\312W\025\020cV\000\000\000\000\001\200\255\373`1\312W`1\312W`1\312W`1\312Wl1\312Ww1\312W`1\312Ww1\312W", '\000' <repeats 20 times>, "\324IqV\000\000\000\000\330IqV\000\000\000\377\000\000\000\000HClV\001\000CM\204/\312W\377\377\377\377", '\000' <repeats 12 times>...
ob = <optimized out>
pass_message = 0
message = 0x0
yield = 0
tls_errstr = 0x0
__FUNCTION__ = "smtp_setup_conn"
#9 0x56643e56 in do_callout (pm_mailfrom=<optimized out>,
se_mailfrom=<optimized out>, options=<optimized out>,
callout_connect=<optimized out>, callout_overall=<optimized out>,
callout=<optimized out>, tf=0xffe88630, host_list=<optimized out>,
addr=<optimized out>) at verify.c:677
host_af = <optimized out>
port = 25
interface = 0x0
host = <optimized out>
ob = <optimized out>
sx = 0x57cbb544
yield = 0
from_address = <optimized out>
random_local_part = 0x0
save_deliver_domain = <optimized out>
failure_ptr = <optimized out>
callout_start_time = <optimized out>
old_domain_cache_result = <optimized out>
done = 0
address_key = <optimized out>
new_domain_record = {time_stamp = -147406423, result = 0,
postmaster_result = 0, random_result = 0,
postmaster_stamp = 1472965820, random_stamp = 32}
new_address_record = {time_stamp = 0, result = 0}
yield = <optimized out>
old_domain_cache_result = <optimized out>
done = <optimized out>
address_key = <optimized out>
from_address = <optimized out>
random_local_part = <optimized out>
save_deliver_domain = <optimized out>
failure_ptr = <optimized out>
new_domain_record = {time_stamp = <optimized out>,
result = <optimized out>, postmaster_result = <optimized out>,
random_result = <optimized out>, postmaster_stamp = <optimized out>,
random_stamp = <optimized out>}
new_address_record = {time_stamp = <optimized out>,
result = <optimized out>}
callout_start_time = <optimized out>
__FUNCTION__ = "do_callout"
END_CALLOUT = <optimized out>
tls_retry_connection = <optimized out>
no_conn = <optimized out>
ob = <optimized out>
sx = <optimized out>
host = <optimized out>
host_af = <optimized out>
port = <optimized out>
interface = <optimized out>
main_address = <optimized out>
rcpt_domain = <optimized out>
errstr = <optimized out>
main_address = <optimized out>
s = <optimized out>
c = <optimized out>
oldpool = <optimized out>
caddr = <optimized out>
parent = <optimized out>
dullmsg = <optimized out>
#10 verify_address (vaddr=<optimized out>, fp=<optimized out>,
options=<optimized out>, callout=<optimized out>,
callout_overall=<optimized out>, callout_connect=<optimized out>,
se_mailfrom=<optimized out>, pm_mailfrom=<optimized out>,
routed=<optimized out>) at verify.c:1947
tp = <optimized out>
host_list = 0x57ca32bc
tf = {interface = 0x0, port = 0x5668ed4e "smtp",
protocol = 0x5668ed4e "smtp", hosts = 0x0,
helo_data = 0x566c0e96 "$primary_hostname", hosts_override = 0,
hosts_randomize = 0, gethostbyname = 0, qualify_single = 1,
search_parents = 0}
local_verify = <optimized out>
rc = <optimized out>
addr = <optimized out>
allok = <optimized out>
full_info = <optimized out>
expn = <optimized out>
success_on_redirect = <optimized out>
i = <optimized out>
yield = <optimized out>
verify_type = <optimized out>
addr_list = <optimized out>
addr_new = 0x0
addr_remote = 0x57ca1ff4
addr_local = 0x0
addr_succeed = 0x0
failure_ptr = <optimized out>
ko_prefix = <optimized out>
cr = <optimized out>
address = <optimized out>
save_sender = <optimized out>
null_sender = ""
#11 0x565a6642 in acl_verify (where=where@entry=2, addr=addr@entry=0x0,
arg=<optimized out>, user_msgptr=<optimized out>,
log_msgptr=<optimized out>, basic_errno=<optimized out>) at acl.c:2116
routed = 1
save_address_data = <optimized out>
sep = 47
callout = <optimized out>
callout_overall = <optimized out>
callout_connect = <optimized out>
verify_options = <optimized out>
rc = <optimized out>
verify_header_sender = <optimized out>
defer_ok = <optimized out>
callout_defer_ok = <optimized out>
no_details = <optimized out>
success_on_redirect = <optimized out>
quota = <optimized out>
quota_pos_cache = <optimized out>
quota_neg_cache = <optimized out>
sender_vaddr = 0x57ca1ff4
verify_sender_address = <optimized out>
pm_mailfrom = <optimized out>
se_mailfrom = <optimized out>
slash = <optimized out>
list = 0x570e8c5a ""
ss = <optimized out>
__FUNCTION__ = "acl_verify"
vp = <optimized out>
#12 0x565a868e in acl_check_condition (level=<optimized out>,
basic_errno=0xffe88e4c, log_msgptr=<optimized out>,
user_msgptr=<optimized out>, epp=<synthetic pointer>,
addr=<optimized out>, where=<optimized out>, cb=0x570e8c38,
verb=<optimized out>) at acl.c:3838
arg = 0x570e8c48 "sender/callout=90s"
control_type = <optimized out>
user_message = <optimized out>
log_message = 0x0
rc = 0
sep = -47
user_message = <optimized out>
log_message = <optimized out>
rc = <optimized out>
sep = <optimized out>
__FUNCTION__ = "acl_check_condition"
arg = <optimized out>
control_type = <optimized out>
lhswidth = <optimized out>
p = <optimized out>
fd = <optimized out>
af = <optimized out>
level = <optimized out>
optname = <optimized out>
value = <optimized out>
pp = <optimized out>
pp = <optimized out>
pp = <optimized out>
debug_tag = <optimized out>
debug_opts = <optimized out>
kill = <optimized out>
pp = <optimized out>
ignored = <optimized out>
pp = <optimized out>
delay = <optimized out>
p = {fd = <optimized out>, events = <optimized out>,
revents = <optimized out>}
n = <optimized out>
endcipher = <optimized out>
cipher = <optimized out>
logbits = <optimized out>
sep = <optimized out>
s = <optimized out>
ss = <optimized out>
logbits = <optimized out>
s = <optimized out>
list = <optimized out>
ss = <optimized out>
opt = <optimized out>
defer_ok = <optimized out>
timeout = <optimized out>
m = <optimized out>
sdomain = <optimized out>
old_pool = <optimized out>
list = <optimized out>
ss = <optimized out>
expmessage = <optimized out>
old_user_msgptr = <optimized out>
old_log_msgptr = <optimized out>
#13 acl_check_internal (where=<optimized out>, addr=<optimized out>,
s=<optimized out>, user_msgptr=<optimized out>, log_msgptr=<optimized out>)
at acl.c:4225
cond = <optimized out>
basic_errno = 0
endpass_seen = 0
acl_quit_check = <optimized out>
fd = <optimized out>
acl = <optimized out>
acl_name = <optimized out>
ss = <optimized out>
__FUNCTION__ = "acl_check_internal"
#14 0x565abcb1 in acl_check (where=2, recipient=0x0,
s=0x570e3198 "acl_custom_check_predata", user_msgptr=0xffe895c8,
log_msgptr=0xffe895c4) at acl.c:4539
rc = <optimized out>
adb = {next = 0x571ff0f3, parent = 0x5, first = 0x5736b3b0,
dupof = 0x0, start_router = 0x57a38284, router = 0x23001e,
transport = 0x571ff0f0, host_list = 0x6, host_used = 0xf04ad100,
fallback_hosts = 0x0, reply = 0x0,
retries = 0xf751459b <__libc_sigaction+11>,
address = 0xf751f000 "\250\356\001", unique = 0xffe88fe0 "0{\\V",
cc_local_part = 0x5 <error: Cannot access memory at address 0x5>,
lc_local_part = 0x5671268c "\354\304\030",
local_part = 0xf7514744 <sigaction+52> "\203\304\020\203\304\b[.?t&", prefix = 0xe <error: Cannot access memory at address 0xe>,
prefix_v = 0xffe88fe0 "0{\\V", suffix = 0x0,
suffix_v = 0x1000 <error: Cannot access memory at address 0x1000>,
domain = 0x0,
address_retry_key = 0xf7514716 <sigaction+6> "\201\303", <incomplete sequence \352\250>, domain_retry_key = 0x5671268c "\354\304\030",
current_dir = 0x565f1836 <os_non_restarting_signal+86> "\211\364\213\204$\214", home_dir = 0xe <error: Cannot access memory at address 0xe>,
message = 0xffe88fe0 "0{\\V", user_message = 0x0,
onetime_parent = 0xf7312f0c "\274-\"",
pipe_expandn = 0x565c7b30 <sigalrm_handler>, return_filename = 0x0,
self_hostname = 0x0, shadow_message = 0x0, tlsver = 0x0,
cipher = 0x0, ourcert = 0x0, peercert = 0x0, peerdn = 0x0, ocsp = 0,
authenticator = 0x0, auth_id = 0x0, auth_sndr = 0x0,
dsn_orcpt = 0x0, dsn_flags = 0, dsn_aware = 0, uid = 0, gid = 0,
flags = {af_allow_file = 0, af_allow_pipe = 0, af_allow_reply = 0,
af_dr_retry_exists = 0, af_expand_pipe = 0, af_file = 0,
af_gid_set = 0, af_home_expanded = 0, af_initgroups = 0,
af_local_host_removed = 0, af_lt_retry_exists = 0, af_pfr = 0,
af_retry_skipped = 0, af_retry_timedout = 0, af_uid_set = 0,
af_hide_child = 0, af_sverify_told = 0, af_verify_pmfail = 0,
af_verify_nsfail = 0, af_homonym = 0, af_verify_routed = 0,
af_verify_callout = 0, af_include_affixes = 0, af_new_conn = 0,
af_cont_conn = 0, af_cert_verified = 0, af_pass_message = 0,
af_bad_reply = 0, af_tcp_fastopen_conn = 0, af_tcp_fastopen = 0,
af_tcp_fastopen_data = 0, af_pipelining = 0, af_early_pipe = 0,
af_prdr_used = 0, af_chunking_used = 0, af_force_command = 0,
af_dane_verified = 0, af_utf8_downcvt = 0, af_tls_resume = 0},
domain_cache = {0, 0}, localpart_cache = {0, 0}, mode = 0,
basic_errno = 0, more_errno = 0, delivery_time = {tv_sec = 0,
tv_usec = 0}, child_count = 0, return_file = 0,
special_action = 17349, transport_return = -2252, prop = {
address_data = 0x5663055d <strncmpic+45> "\203\305\001\017\266\016\203\306\001\213\020\017\266E\377\213\004\202+\004\212u\006\071\376u\340\061\300\203\304\f[^_]?\264&", domain_data = 0x0, localpart_data = 0x0,
errors_address = 0x56630539 <strncmpic+9> "\201\303S!\016",
extra_headers = 0x5671268c,
remove_headers = 0x5671268c "\354\304\030",
variables = 0x56716b40 <cmd_list+128>, ignore_error = 0,
utf8_msg = 0, utf8_downcvt = 0, utf8_downcvt_maybe = 0}}
addr = 0x0
#15 0x56623fd1 in smtp_setup_msg () at smtp_in.c:5435
acl = <optimized out>
mail_args = <optimized out>
sender_domain = 6
etrn_command = <optimized out>
log_msg = 0x0
smtp_code = 0x10 <error: Cannot access memory at address 0x10>
ss = 0xffe895e0 "\020"
recipient_domain = 16
g = <optimized out>
argv = 0x10
etrn_serialize_key = <optimized out>
s = 0x0
was_rej_mail = 0
oldsignal = <optimized out>
start = 1
c = <optimized out>
orcpt = 0x0
recipient = 0x0
was_rcpt = 0
pid = <optimized out>
rc = <optimized out>
errmess = 0x0
user_msg = 0x0
hello = 0x0
end = 25
dsn_flags = <optimized out>
done = <optimized out>
toomany = <optimized out>
discarded = <optimized out>
last_was_rej_mail = <optimized out>
last_was_rcpt = <optimized out>
reset_point = <optimized out>
__FUNCTION__ = "smtp_setup_msg"
__PRETTY_FUNCTION__ = "smtp_setup_msg"
#16 0x565afe00 in handle_smtp_call (accepted=0xffe89988,
accept_socket=<optimized out>, listen_socket_count=<optimized out>,
listen_sockets=<optimized out>) at daemon.c:551
rc = <optimized out>
queue_only_reason = 0
old_pool = <optimized out>
save_debug_selector = <optimized out>
local_queue_only = <optimized out>
session_local_queue_only = 0
act = {__sigaction_handler = {sa_handler = 0x1, sa_sigaction = 0x1},
sa_mask = {__val = {0 <repeats 32 times>}}, sa_flags = 2,
sa_restorer = 0x0}
pid = 0
ifsize = 16
interface_sockaddr = {v4 = {sin_family = 2, sin_port = 6400,
sin_addr = {s_addr = 218802368},
sin_zero = "\000\000\000\000\000\000\000"}, v6 = {sin6_family = 2,
sin6_port = 6400, sin6_flowinfo = 218802368, sin6_addr = {
__in6_u = {
__u6_addr8 = '\000' <repeats 11 times>, "\n\000\000\000",
__u6_addr16 = {0, 0, 0, 0, 0, 2560, 0, 0}, __u6_addr32 = {0,
0, 167772160, 0}}}, sin6_scope_id = 0}, v0 = {sa_family = 2,
sa_data = "\000\031\300\250\n\r\000\000\000\000\000\000\000"}}
dup_accept_socket = <optimized out>
max_for_this_host = <optimized out>
save_log_selector = <optimized out>
whofrom = <optimized out>
reset_point = 0x57365574
pid = <optimized out>
interface_sockaddr = {v4 = {sin_family = <optimized out>,
sin_port = <optimized out>, sin_addr = {s_addr = <optimized out>},
sin_zero = {<optimized out>, <optimized out>, <optimized out>,
<optimized out>, <optimized out>, <optimized out>,
<optimized out>, <optimized out>}}, v6 = {
sin6_family = <optimized out>, sin6_port = <optimized out>,
sin6_flowinfo = <optimized out>, sin6_addr = {__in6_u = {
__u6_addr8 = {<optimized out> <repeats 16 times>},
__u6_addr16 = {<optimized out>, <optimized out>,
<optimized out>, <optimized out>, <optimized out>,
<optimized out>, <optimized out>, <optimized out>},
__u6_addr32 = {<optimized out>, <optimized out>,
<optimized out>, <optimized out>}}},
sin6_scope_id = <optimized out>}, v0 = {
sa_family = <optimized out>, sa_data = {
<optimized out> <repeats 14 times>}}}
ifsize = <optimized out>
dup_accept_socket = <optimized out>
max_for_this_host = <optimized out>
save_log_selector = <optimized out>
whofrom = <optimized out>
reset_point = <optimized out>
__FUNCTION__ = "handle_smtp_call"
ERROR_RETURN = <optimized out>
expanded = <optimized out>
s = <optimized out>
host_accept_count = <optimized out>
other_host_count = <optimized out>
i = <optimized out>
list = <optimized out>
queue_only_reason = <optimized out>
old_pool = <optimized out>
save_debug_selector = <optimized out>
local_queue_only = <optimized out>
session_local_queue_only = <optimized out>
act = {__sigaction_handler = {sa_handler = <optimized out>,
sa_sigaction = <optimized out>}, sa_mask = {__val = {
<optimized out> <repeats 32 times>}},
sa_flags = <optimized out>, sa_restorer = <optimized out>}
nah = <optimized out>
rc = <optimized out>
ok = <optimized out>
fd = <optimized out>
buf = {<optimized out> <repeats 128 times>}
i = <optimized out>
i = <optimized out>
r = <optimized out>
q = <optimized out>
dpid = <optimized out>
i = <optimized out>
#17 daemon_go () at daemon.c:2594
accept_socket = <optimized out>
accepted = {sin6_family = 2, sin6_port = 38059,
sin6_flowinfo = 1377758137, sin6_addr = {__in6_u = {
__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0,
0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
sin6_scope_id = 1460493328}
check_lsk = <optimized out>
lcount = <optimized out>
select_failed = <optimized out>
fds = {fds_bits = {16, 0 <repeats 31 times>}}
pid = <optimized out>
pw = <optimized out>
listen_sockets = <optimized out>
listen_socket_count = <optimized out>
listen_fd_max = 10
select_listen = {fds_bits = {632, 0 <repeats 31 times>}}
addresses = 0x570de0f4
last_connection_time = <optimized out>
local_queue_run_max = <optimized out>
__FUNCTION__ = "daemon_go"
__d = <optimized out>
#18 0x565a0116 in main (argc=<optimized out>, cargv=<optimized out>)
at exim.c:4947
argv = <optimized out>
arg_receive_timeout = -1
arg_smtp_receive_timeout = -1
arg_error_handling = <optimized out>
filter_sfd = -1
filter_ufd = -1
group_count = <optimized out>
i = <optimized out>
rv = <optimized out>
list_queue_option = <optimized out>
msg_action = 0
msg_action_arg = -1
namelen = <optimized out>
queue_only_reason = 0
perl_start_option = <optimized out>
recipients_arg = 3
sender_address_domain = 0
test_retry_arg = -1
test_rewrite_arg = -1
original_egid = <optimized out>
arg_queue_only = <optimized out>
bi_option = <optimized out>
checking = <optimized out>
count_queue = <optimized out>
expansion_test = <optimized out>
extract_recipients = <optimized out>
flag_G = <optimized out>
flag_n = <optimized out>
forced_delivery = 0
f_end_dot = <optimized out>
deliver_give_up = 0
list_queue = <optimized out>
list_options = <optimized out>
list_config = <optimized out>
local_queue_only = <optimized out>
more = 1
one_msg_action = 0
opt_D_used = <optimized out>
queue_only_set = <optimized out>
receiving_message = <optimized out>
sender_ident_set = <optimized out>
session_local_queue_only = <optimized out>
unprivileged = <optimized out>
removed_privilege = <optimized out>
usage_wanted = <optimized out>
verify_address_mode = <optimized out>
verify_as_sender = <optimized out>
rcpt_verify_quota = <optimized out>
version_printed = <optimized out>
alias_arg = <optimized out>
called_as = <optimized out>
cmdline_syslog_name = <optimized out>
start_queue_run_id = <optimized out>
stop_queue_run_id = <optimized out>
expansion_test_message = <optimized out>
ftest_domain = <optimized out>
ftest_localpart = <optimized out>
ftest_prefix = <optimized out>
ftest_suffix = <optimized out>
log_oneline = <optimized out>
malware_test_file = <optimized out>
real_sender_address = <optimized out>
originator_home = 0x570de064 "/root"
sz = <optimized out>
pw = 0xf74fe9e4
statbuf = {st_dev = 40, __pad1 = 0, __st_ino = 11, st_mode = 8592,
st_nlink = 1, st_uid = 0, st_gid = 5, st_rdev = 34824, __pad2 = 0,
st_size = 0, st_blksize = 1024, st_blocks = 0, st_atim = {
tv_sec = 1630842173, tv_nsec = 37236752}, st_mtim = {
tv_sec = 1630842177, tv_nsec = 37236752}, st_ctim = {
tv_sec = 1630839984, tv_nsec = 37236752}, st_ino = 11}
passed_qr_pid = <optimized out>
passed_qr_pipe = <optimized out>
group_list = <error reading variable group_list (value requires 262144 bytes, which is more than max-value-size)>
info_flag = <optimized out>
info_stdout = <optimized out>
rsopts = {0x56695535 "f", 0x566bd748 "ff", 0x566b0bec "r",
0x5668f945 "rf", 0x5668f948 "rff"}
__FUNCTION__ = "main"
(gdb) quit

------------------------------------------------------------------------
--
Eugene Berdnikov

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.95-RC2 released [ In reply to ]
More info on segfaults. Now I have 4 coredumps for incoming mails
and 1 for outgoing mail with symbol info.
All have common references on the top:

at tls-gnu.c:2518
at tls-gnu.c:3591
suppress_tls=<optimized out>) at smtp.c:2673
--
Eugene Berdnikov

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.95-RC2 released [ In reply to ]
On 06/09/2021 08:27, Evgeniy Berdnikov via Exim-users wrote:
> Several happened last night, 1st coredump is below.

[I don't seem to be able to mail you directly]

OK. We're doing a callout from ACL, so that's either a
recipient or sender verify. The callout smtp is using STARTTLS.
We've done the TLS handshake and are checking on GnuTLS'
knowledge of the server certificate.

The call into the library only hands it a session handle,
so whatever pointer is wrong is internal at that point.
It could still be something we handed it earlier;
possibily a null pointer; possibly a pointer to data
we didn't expect the library to modify and have made readonly.

Can you get the actual pointer, by dumping the disassembly
and registers? We're hitting the limits of my gdb here,
but it might be possible to dump the value pointed to
(assuming non-null) and hence identify the config setting.
If it is one then the fix will involve copying the value
to modifiable memory before passing it to GnuTLS...
The is-null possibility will be harder to find.

It'd also be useful to know the version of GnuTLS;
please run "exim4 -d -bV" and extract the version that says.
--
Cheers,
Jeremy

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.95-RC2 released [ In reply to ]
On 2021-09-06 Evgeniy Berdnikov via Exim-users <exim-users@exim.org> wrote:
[...]
> #1 0xf71d5be6 in gnutls_x509_trust_list_get_issuer ()
> from /usr/lib/i386-linux-gnu/libgnutls.so.30
> No symbol table info available.
> #2 0xf71d6613 in gnutls_x509_trust_list_verify_crt2 ()
> from /usr/lib/i386-linux-gnu/libgnutls.so.30
> No symbol table info available.
[...]

Not sure it would help, but it would show more data if you installed
libgnutls-dane0-dbgsym and libgnutls30-dbgsym.

cu Andreas

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.95-RC2 released [ In reply to ]
On Tue, Sep 07, 2021 at 06:33:06PM +0200, Andreas Metzler via Exim-users wrote:
> On 2021-09-06 Evgeniy Berdnikov via Exim-users <exim-users@exim.org> wrote:
> [...]
> > #1 0xf71d5be6 in gnutls_x509_trust_list_get_issuer ()
> > from /usr/lib/i386-linux-gnu/libgnutls.so.30
> > No symbol table info available.
> > #2 0xf71d6613 in gnutls_x509_trust_list_verify_crt2 ()
> > from /usr/lib/i386-linux-gnu/libgnutls.so.30
> > No symbol table info available.
> [...]
>
> Not sure it would help, but it would show more data if you installed
> libgnutls-dane0-dbgsym and libgnutls30-dbgsym.

It was not easy for me to find Debian repository with these packages...
Thanks to Andreas Metzler for help.

Below is the same dump for core.116601, with libgnutls*-dbgsym installed.

[...]
Reading symbols from /usr/sbin/exim4.95rc2-non-stripped...
[New LWP 116601]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/sbin/exim4 -bd -q1m'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0xf71d5b0d in _gnutls_trust_list_get_issuer (list=0x570df8f0,
cert=0x5710d1b0, issuer=0xffe86ef8, flags=0)
at ../../../lib/x509/verify-high.c:1026
#0 0xf71d5b0d in _gnutls_trust_list_get_issuer (list=0x570df8f0,
cert=0x5710d1b0, issuer=0xffe86ef8, flags=0)
at ../../../lib/x509/verify-high.c:1026
ret = <optimized out>
i = 0
hash = 1408224284
#1 0xf71d5be6 in gnutls_x509_trust_list_get_issuer (list=0x570df8f0,
cert=0x5710d1b0, issuer=0xffe86ef8, flags=0)
at ../../../lib/x509/verify-high.c:1128
ret = <optimized out>
__func__ = "gnutls_x509_trust_list_get_issuer"
#2 0xf71d6613 in gnutls_x509_trust_list_verify_crt2 (list=0x570df8f0,
cert_list=0xffe86f0c, cert_list_size=<optimized out>, data=0x0,
elements=0, flags=33554432, voutput=0xffe871c0, func=0x0)
at ../../../lib/x509/verify-high.c:1521
sorted_size = <optimized out>
j = <optimized out>
issuer = 0x70
ret = <optimized out>
i = <optimized out>
hash = <optimized out>
sorted = {0x57cdbd60, 0x5710d1b0, 0x7, 0x1, 0xf739ce7c <calloc+140>,
0xffe87060, 0xf719f2f6 <_gnutls_x509_crt_get_extension+6>,
0xf7312f0c, 0xf04ad100, 0x5710d1b0, 0xf724622d, 0xf73988fb,
0xf7312f0c, 0xf64df8ec, 0x57a52190, 0x5710d1b0}
retrieved = {0xf7188edf <rpl_free+63>, 0x5727aff0, 0x0,
0xf7516885 <__errno_location+5>, 0xf7188ec1 <rpl_free+33>,
0xf64df8ec, 0x0, 0x0, 0xf04ad100, 0xf7188ea7 <rpl_free+7>,
0xf7312f0c, 0x0,
0xf7160f4c <_gnutls_ocsp_verify_mandatory_stapling+156>, 0x5727aff0,
0x5727aff0, 0x0}
retrieved_size = 0
hostname = <optimized out>
purpose = <optimized out>
email = <optimized out>
hostname_size = <optimized out>
have_set_name = <optimized out>
saved_output = <optimized out>
ip = {data = <optimized out>, size = <optimized out>}
cert_set = {node = <optimized out>, size = <optimized out>}
__func__ = "gnutls_x509_trust_list_verify_crt2"
__PRETTY_FUNCTION__ = "gnutls_x509_trust_list_verify_crt2"
#3 0xf7161647 in _gnutls_x509_cert_verify_peers (session=0x57a52190,
data=0x0, elements=0, status=0xffe871c0) at ../../lib/cert-session.c:597
info = <optimized out>
cred = 0x570df790
peer_certificate_list = 0x570cc330
resp = {data = 0x57cdeb00 "0\202\001\323\n\001", size = 471}
peer_certificate_list_size = <optimized out>
i = <optimized out>
x = <optimized out>
ret = <optimized out>
cand_issuers = <optimized out>
cand_issuers_size = <optimized out>
ocsp_status = 0
verify_flags = <optimized out>
__func__ = "_gnutls_x509_cert_verify_peers"
#4 0xf7161f3f in gnutls_certificate_verify_peers (session=0x57a52190,
data=0x0, elements=0, status=0xffe871c0) at ../../lib/cert-session.c:776
info = <optimized out>
__func__ = "gnutls_certificate_verify_peers"
#5 0xf7161fd0 in gnutls_certificate_verify_peers2 (session=0x57a52190,
status=0xffe871c0) at ../../lib/cert-session.c:653
No locals.
#6 0x5663599b in verify_certificate (state=<optimized out>, errstr=0xffe872d0)
at tls-gnu.c:2518
rc = <optimized out>
verify = 1460649816
__FUNCTION__ = "verify_certificate"
#7 0x56637c2b in tls_client_start (cctx=0x57ccb5a8, conn_args=0x57cbb54c,
cookie=0x57ca1ff4, tlsp=0x56714ee0 <tls_out>, errstr=0xffe872d0)
at tls-gnu.c:3591
host = 0x57ca32bc
tb = <optimized out>
ob = 0x570fbe6c
rc = 0
state = 0x570fcfb4
cipher_list = <optimized out>
require_ocsp = 0
request_ocsp = 1
__FUNCTION__ = "tls_client_start"
#8 0x566696c6 in smtp_setup_conn (sx=<optimized out>,
suppress_tls=<optimized out>) at smtp.c:2673
buffer2 = "220 2.7.0 Ready to start TLS\000t\350\377;\200\070\367<s\350\377.\347hV@t\350\377\006\000\000\000<s\350\377`1\312W\027\000\000\000`1\312W\002ru\000\214&qV.\347hV`1\312Wl-\312W\025\020cV\000\000\000\000\001\200\255\373`1\312W`1\312W`1\312W`1\312Wl1\312Ww1\312W`1\312Ww1\312W", '\000' <repeats 20 times>, "\324IqV\000\000\000\000\330IqV\000\000\000\377\000\000\000\000HClV\001\000CM\204/\312W\377\377\377\377", '\000' <repeats 12 times>...
ob = <optimized out>
pass_message = 0
message = 0x0
yield = 0
tls_errstr = 0x0
__FUNCTION__ = "smtp_setup_conn"
#9 0x56643e56 in do_callout (pm_mailfrom=<optimized out>,
se_mailfrom=<optimized out>, options=<optimized out>,
callout_connect=<optimized out>, callout_overall=<optimized out>,
callout=<optimized out>, tf=0xffe88630, host_list=<optimized out>,
addr=<optimized out>) at verify.c:677
host_af = <optimized out>
port = 25
interface = 0x0
host = <optimized out>
ob = <optimized out>
sx = 0x57cbb544
yield = 0
from_address = <optimized out>
random_local_part = 0x0
save_deliver_domain = <optimized out>
failure_ptr = <optimized out>
callout_start_time = <optimized out>
old_domain_cache_result = <optimized out>
done = 0
address_key = <optimized out>
new_domain_record = {time_stamp = -147406423, result = 0,
postmaster_result = 0, random_result = 0,
postmaster_stamp = 1472965820, random_stamp = 32}
new_address_record = {time_stamp = 0, result = 0}
yield = <optimized out>
old_domain_cache_result = <optimized out>
done = <optimized out>
address_key = <optimized out>
from_address = <optimized out>
random_local_part = <optimized out>
save_deliver_domain = <optimized out>
failure_ptr = <optimized out>
new_domain_record = {time_stamp = <optimized out>,
result = <optimized out>, postmaster_result = <optimized out>,
random_result = <optimized out>, postmaster_stamp = <optimized out>,
random_stamp = <optimized out>}
new_address_record = {time_stamp = <optimized out>,
result = <optimized out>}
callout_start_time = <optimized out>
__FUNCTION__ = "do_callout"
END_CALLOUT = <optimized out>
tls_retry_connection = <optimized out>
no_conn = <optimized out>
ob = <optimized out>
sx = <optimized out>
host = <optimized out>
host_af = <optimized out>
port = <optimized out>
interface = <optimized out>
main_address = <optimized out>
rcpt_domain = <optimized out>
errstr = <optimized out>
main_address = <optimized out>
s = <optimized out>
c = <optimized out>
oldpool = <optimized out>
caddr = <optimized out>
parent = <optimized out>
dullmsg = <optimized out>
#10 verify_address (vaddr=<optimized out>, fp=<optimized out>,
options=<optimized out>, callout=<optimized out>,
callout_overall=<optimized out>, callout_connect=<optimized out>,
se_mailfrom=<optimized out>, pm_mailfrom=<optimized out>,
routed=<optimized out>) at verify.c:1947
tp = <optimized out>
host_list = 0x57ca32bc
tf = {interface = 0x0, port = 0x5668ed4e "smtp",
protocol = 0x5668ed4e "smtp", hosts = 0x0,
helo_data = 0x566c0e96 "$primary_hostname", hosts_override = 0,
hosts_randomize = 0, gethostbyname = 0, qualify_single = 1,
search_parents = 0}
local_verify = <optimized out>
rc = <optimized out>
addr = <optimized out>
allok = <optimized out>
full_info = <optimized out>
expn = <optimized out>
success_on_redirect = <optimized out>
i = <optimized out>
yield = <optimized out>
verify_type = <optimized out>
addr_list = <optimized out>
addr_new = 0x0
addr_remote = 0x57ca1ff4
addr_local = 0x0
addr_succeed = 0x0
failure_ptr = <optimized out>
ko_prefix = <optimized out>
cr = <optimized out>
address = <optimized out>
save_sender = <optimized out>
null_sender = ""
#11 0x565a6642 in acl_verify (where=where@entry=2, addr=addr@entry=0x0,
arg=<optimized out>, user_msgptr=<optimized out>,
log_msgptr=<optimized out>, basic_errno=<optimized out>) at acl.c:2116
routed = 1
save_address_data = <optimized out>
sep = 47
callout = <optimized out>
callout_overall = <optimized out>
callout_connect = <optimized out>
verify_options = <optimized out>
rc = <optimized out>
verify_header_sender = <optimized out>
defer_ok = <optimized out>
callout_defer_ok = <optimized out>
no_details = <optimized out>
success_on_redirect = <optimized out>
quota = <optimized out>
quota_pos_cache = <optimized out>
quota_neg_cache = <optimized out>
sender_vaddr = 0x57ca1ff4
verify_sender_address = <optimized out>
pm_mailfrom = <optimized out>
se_mailfrom = <optimized out>
slash = <optimized out>
list = 0x570e8c5a ""
ss = <optimized out>
__FUNCTION__ = "acl_verify"
vp = <optimized out>
#12 0x565a868e in acl_check_condition (level=<optimized out>,
basic_errno=0xffe88e4c, log_msgptr=<optimized out>,
user_msgptr=<optimized out>, epp=<synthetic pointer>,
addr=<optimized out>, where=<optimized out>, cb=0x570e8c38,
verb=<optimized out>) at acl.c:3838
arg = 0x570e8c48 "sender/callout=90s"
control_type = <optimized out>
user_message = <optimized out>
log_message = 0x0
rc = 0
sep = -47
user_message = <optimized out>
log_message = <optimized out>
rc = <optimized out>
sep = <optimized out>
__FUNCTION__ = "acl_check_condition"
arg = <optimized out>
control_type = <optimized out>
lhswidth = <optimized out>
p = <optimized out>
fd = <optimized out>
af = <optimized out>
level = <optimized out>
optname = <optimized out>
value = <optimized out>
pp = <optimized out>
pp = <optimized out>
pp = <optimized out>
debug_tag = <optimized out>
debug_opts = <optimized out>
kill = <optimized out>
pp = <optimized out>
ignored = <optimized out>
pp = <optimized out>
delay = <optimized out>
p = {fd = <optimized out>, events = <optimized out>,
revents = <optimized out>}
n = <optimized out>
endcipher = <optimized out>
cipher = <optimized out>
logbits = <optimized out>
sep = <optimized out>
s = <optimized out>
ss = <optimized out>
logbits = <optimized out>
s = <optimized out>
list = <optimized out>
ss = <optimized out>
opt = <optimized out>
defer_ok = <optimized out>
timeout = <optimized out>
m = <optimized out>
sdomain = <optimized out>
old_pool = <optimized out>
list = <optimized out>
ss = <optimized out>
expmessage = <optimized out>
old_user_msgptr = <optimized out>
old_log_msgptr = <optimized out>
#13 acl_check_internal (where=<optimized out>, addr=<optimized out>,
s=<optimized out>, user_msgptr=<optimized out>, log_msgptr=<optimized out>)
at acl.c:4225
cond = <optimized out>
basic_errno = 0
endpass_seen = 0
acl_quit_check = <optimized out>
fd = <optimized out>
acl = <optimized out>
acl_name = <optimized out>
ss = <optimized out>
__FUNCTION__ = "acl_check_internal"
#14 0x565abcb1 in acl_check (where=2, recipient=0x0,
s=0x570e3198 "acl_custom_check_predata", user_msgptr=0xffe895c8,
log_msgptr=0xffe895c4) at acl.c:4539
rc = <optimized out>
adb = {next = 0x571ff0f3, parent = 0x5, first = 0x5736b3b0,
dupof = 0x0, start_router = 0x57a38284, router = 0x23001e,
transport = 0x571ff0f0, host_list = 0x6, host_used = 0xf04ad100,
fallback_hosts = 0x0, reply = 0x0,
retries = 0xf751459b <__libc_sigaction+11>,
address = 0xf751f000 "\250\356\001", unique = 0xffe88fe0 "0{\\V",
cc_local_part = 0x5 <error: Cannot access memory at address 0x5>,
lc_local_part = 0x5671268c "\354\304\030",
local_part = 0xf7514744 <sigaction+52> "\203\304\020\203\304\b[.?t&", prefix = 0xe <error: Cannot access memory at address 0xe>,
prefix_v = 0xffe88fe0 "0{\\V", suffix = 0x0,
suffix_v = 0x1000 <error: Cannot access memory at address 0x1000>,
domain = 0x0,
address_retry_key = 0xf7514716 <sigaction+6> "\201\303", <incomplete sequence \352\250>, domain_retry_key = 0x5671268c "\354\304\030",
current_dir = 0x565f1836 <os_non_restarting_signal+86> "\211\364\213\204$\214", home_dir = 0xe <error: Cannot access memory at address 0xe>,
message = 0xffe88fe0 "0{\\V", user_message = 0x0,
onetime_parent = 0xf7312f0c "\274-\"",
pipe_expandn = 0x565c7b30 <sigalrm_handler>, return_filename = 0x0,
self_hostname = 0x0, shadow_message = 0x0, tlsver = 0x0,
cipher = 0x0, ourcert = 0x0, peercert = 0x0, peerdn = 0x0, ocsp = 0,
authenticator = 0x0, auth_id = 0x0, auth_sndr = 0x0,
dsn_orcpt = 0x0, dsn_flags = 0, dsn_aware = 0, uid = 0, gid = 0,
flags = {af_allow_file = 0, af_allow_pipe = 0, af_allow_reply = 0,
af_dr_retry_exists = 0, af_expand_pipe = 0, af_file = 0,
af_gid_set = 0, af_home_expanded = 0, af_initgroups = 0,
af_local_host_removed = 0, af_lt_retry_exists = 0, af_pfr = 0,
af_retry_skipped = 0, af_retry_timedout = 0, af_uid_set = 0,
af_hide_child = 0, af_sverify_told = 0, af_verify_pmfail = 0,
af_verify_nsfail = 0, af_homonym = 0, af_verify_routed = 0,
af_verify_callout = 0, af_include_affixes = 0, af_new_conn = 0,
af_cont_conn = 0, af_cert_verified = 0, af_pass_message = 0,
af_bad_reply = 0, af_tcp_fastopen_conn = 0, af_tcp_fastopen = 0,
af_tcp_fastopen_data = 0, af_pipelining = 0, af_early_pipe = 0,
af_prdr_used = 0, af_chunking_used = 0, af_force_command = 0,
af_dane_verified = 0, af_utf8_downcvt = 0, af_tls_resume = 0},
domain_cache = {0, 0}, localpart_cache = {0, 0}, mode = 0,
basic_errno = 0, more_errno = 0, delivery_time = {tv_sec = 0,
tv_usec = 0}, child_count = 0, return_file = 0,
special_action = 17349, transport_return = -2252, prop = {
address_data = 0x5663055d <strncmpic+45> "\203\305\001\017\266\016\203\306\001\213\020\017\266E\377\213\004\202+\004\212u\006\071\376u\340\061\300\203\304\f[^_]?\264&", domain_data = 0x0, localpart_data = 0x0,
errors_address = 0x56630539 <strncmpic+9> "\201\303S!\016",
extra_headers = 0x5671268c,
remove_headers = 0x5671268c "\354\304\030",
variables = 0x56716b40 <cmd_list+128>, ignore_error = 0,
utf8_msg = 0, utf8_downcvt = 0, utf8_downcvt_maybe = 0}}
addr = 0x0
#15 0x56623fd1 in smtp_setup_msg () at smtp_in.c:5435
acl = <optimized out>
mail_args = <optimized out>
sender_domain = 6
etrn_command = <optimized out>
log_msg = 0x0
smtp_code = 0x10 <error: Cannot access memory at address 0x10>
ss = 0xffe895e0 "\020"
recipient_domain = 16
g = <optimized out>
argv = 0x10
etrn_serialize_key = <optimized out>
s = 0x0
was_rej_mail = 0
oldsignal = <optimized out>
start = 1
c = <optimized out>
orcpt = 0x0
recipient = 0x0
was_rcpt = 0
pid = <optimized out>
rc = <optimized out>
errmess = 0x0
user_msg = 0x0
hello = 0x0
end = 25
dsn_flags = <optimized out>
done = <optimized out>
toomany = <optimized out>
discarded = <optimized out>
last_was_rej_mail = <optimized out>
last_was_rcpt = <optimized out>
reset_point = <optimized out>
__FUNCTION__ = "smtp_setup_msg"
__PRETTY_FUNCTION__ = "smtp_setup_msg"
#16 0x565afe00 in handle_smtp_call (accepted=0xffe89988,
accept_socket=<optimized out>, listen_socket_count=<optimized out>,
listen_sockets=<optimized out>) at daemon.c:551
rc = <optimized out>
queue_only_reason = 0
old_pool = <optimized out>
save_debug_selector = <optimized out>
local_queue_only = <optimized out>
session_local_queue_only = 0
act = {__sigaction_handler = {sa_handler = 0x1, sa_sigaction = 0x1},
sa_mask = {__val = {0 <repeats 32 times>}}, sa_flags = 2,
sa_restorer = 0x0}
pid = 0
ifsize = 16
interface_sockaddr = {v4 = {sin_family = 2, sin_port = 6400,
sin_addr = {s_addr = 218802368},
sin_zero = "\000\000\000\000\000\000\000"}, v6 = {sin6_family = 2,
sin6_port = 6400, sin6_flowinfo = 218802368, sin6_addr = {
__in6_u = {
__u6_addr8 = '\000' <repeats 11 times>, "\n\000\000\000",
__u6_addr16 = {0, 0, 0, 0, 0, 2560, 0, 0}, __u6_addr32 = {0,
0, 167772160, 0}}}, sin6_scope_id = 0}, v0 = {sa_family = 2,
sa_data = "\000\031\300\250\n\r\000\000\000\000\000\000\000"}}
dup_accept_socket = <optimized out>
max_for_this_host = <optimized out>
save_log_selector = <optimized out>
whofrom = <optimized out>
reset_point = 0x57365574
pid = <optimized out>
interface_sockaddr = {v4 = {sin_family = <optimized out>,
sin_port = <optimized out>, sin_addr = {s_addr = <optimized out>},
sin_zero = {<optimized out>, <optimized out>, <optimized out>,
<optimized out>, <optimized out>, <optimized out>,
<optimized out>, <optimized out>}}, v6 = {
sin6_family = <optimized out>, sin6_port = <optimized out>,
sin6_flowinfo = <optimized out>, sin6_addr = {__in6_u = {
__u6_addr8 = {<optimized out> <repeats 16 times>},
__u6_addr16 = {<optimized out>, <optimized out>,
<optimized out>, <optimized out>, <optimized out>,
<optimized out>, <optimized out>, <optimized out>},
__u6_addr32 = {<optimized out>, <optimized out>,
<optimized out>, <optimized out>}}},
sin6_scope_id = <optimized out>}, v0 = {
sa_family = <optimized out>, sa_data = {
<optimized out> <repeats 14 times>}}}
ifsize = <optimized out>
dup_accept_socket = <optimized out>
max_for_this_host = <optimized out>
save_log_selector = <optimized out>
whofrom = <optimized out>
reset_point = <optimized out>
__FUNCTION__ = "handle_smtp_call"
ERROR_RETURN = <optimized out>
expanded = <optimized out>
s = <optimized out>
host_accept_count = <optimized out>
other_host_count = <optimized out>
i = <optimized out>
list = <optimized out>
queue_only_reason = <optimized out>
old_pool = <optimized out>
save_debug_selector = <optimized out>
local_queue_only = <optimized out>
session_local_queue_only = <optimized out>
act = {__sigaction_handler = {sa_handler = <optimized out>,
sa_sigaction = <optimized out>}, sa_mask = {__val = {
<optimized out> <repeats 32 times>}},
sa_flags = <optimized out>, sa_restorer = <optimized out>}
nah = <optimized out>
rc = <optimized out>
ok = <optimized out>
fd = <optimized out>
buf = {<optimized out> <repeats 128 times>}
i = <optimized out>
i = <optimized out>
r = <optimized out>
q = <optimized out>
dpid = <optimized out>
i = <optimized out>
#17 daemon_go () at daemon.c:2594
accept_socket = <optimized out>
accepted = {sin6_family = 2, sin6_port = 38059,
sin6_flowinfo = 1377758137, sin6_addr = {__in6_u = {
__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0,
0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
sin6_scope_id = 1460493328}
check_lsk = <optimized out>
lcount = <optimized out>
select_failed = <optimized out>
fds = {fds_bits = {16, 0 <repeats 31 times>}}
pid = <optimized out>
pw = <optimized out>
listen_sockets = <optimized out>
listen_socket_count = <optimized out>
listen_fd_max = 10
select_listen = {fds_bits = {632, 0 <repeats 31 times>}}
addresses = 0x570de0f4
last_connection_time = <optimized out>
local_queue_run_max = <optimized out>
__FUNCTION__ = "daemon_go"
__d = <optimized out>
#18 0x565a0116 in main (argc=<optimized out>, cargv=<optimized out>)
at exim.c:4947
argv = <optimized out>
arg_receive_timeout = -1
arg_smtp_receive_timeout = -1
arg_error_handling = <optimized out>
filter_sfd = -1
filter_ufd = -1
group_count = <optimized out>
i = <optimized out>
rv = <optimized out>
list_queue_option = <optimized out>
msg_action = 0
msg_action_arg = -1
namelen = <optimized out>
queue_only_reason = 0
perl_start_option = <optimized out>
recipients_arg = 3
sender_address_domain = 0
test_retry_arg = -1
test_rewrite_arg = -1
original_egid = <optimized out>
arg_queue_only = <optimized out>
bi_option = <optimized out>
checking = <optimized out>
count_queue = <optimized out>
expansion_test = <optimized out>
extract_recipients = <optimized out>
flag_G = <optimized out>
flag_n = <optimized out>
forced_delivery = 0
f_end_dot = <optimized out>
deliver_give_up = 0
list_queue = <optimized out>
list_options = <optimized out>
list_config = <optimized out>
local_queue_only = <optimized out>
more = 1
one_msg_action = 0
opt_D_used = <optimized out>
queue_only_set = <optimized out>
receiving_message = <optimized out>
sender_ident_set = <optimized out>
session_local_queue_only = <optimized out>
unprivileged = <optimized out>
removed_privilege = <optimized out>
usage_wanted = <optimized out>
verify_address_mode = <optimized out>
verify_as_sender = <optimized out>
rcpt_verify_quota = <optimized out>
version_printed = <optimized out>
alias_arg = <optimized out>
called_as = <optimized out>
cmdline_syslog_name = <optimized out>
start_queue_run_id = <optimized out>
stop_queue_run_id = <optimized out>
expansion_test_message = <optimized out>
ftest_domain = <optimized out>
ftest_localpart = <optimized out>
ftest_prefix = <optimized out>
ftest_suffix = <optimized out>
log_oneline = <optimized out>
malware_test_file = <optimized out>
real_sender_address = <optimized out>
originator_home = 0x570de064 "/root"
sz = <optimized out>
pw = 0xf74fe9e4
statbuf = {st_dev = 40, __pad1 = 0, __st_ino = 11, st_mode = 8592,
st_nlink = 1, st_uid = 0, st_gid = 5, st_rdev = 34824, __pad2 = 0,
st_size = 0, st_blksize = 1024, st_blocks = 0, st_atim = {
tv_sec = 1630842173, tv_nsec = 37236752}, st_mtim = {
tv_sec = 1630842177, tv_nsec = 37236752}, st_ctim = {
tv_sec = 1630839984, tv_nsec = 37236752}, st_ino = 11}
passed_qr_pid = <optimized out>
passed_qr_pipe = <optimized out>
group_list = <error reading variable group_list (value requires 262144 bytes, which is more than max-value-size)>
info_flag = <optimized out>
info_stdout = <optimized out>
rsopts = {0x56695535 "f", 0x566bd748 "ff", 0x566b0bec "r",
0x5668f945 "rf", 0x5668f948 "rff"}
__FUNCTION__ = "main"
(gdb) quit

BTW, as stack frame #12 shows that it probably crashes on pre-data ACL,
during sender verification callout:
-------------------------------------------------------------------------
deny
!acl = acl_check_sender_exceptions
!verify = sender/callout=90s
-------------------------------------------------------------------------
--
Eugene Berdnikov

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.95-RC2 released [ In reply to ]
On Tue, Sep 07, 2021 at 03:32:02PM +0100, Jeremy Harris via Exim-users wrote:
> Another test you could try is a build with
> #define MISSING_POSIX_MEMALIGN
> in OS/os.h-Linux.
> If that still coredumps in the same place, it's not a "write
> to readonly data" trap; so more likely a null pointer.

OK. Exim was recompiled with MISSING_POSIX_MEMALIGN.
Segfaults are still here. I see no significant difference with old dumps.
Fault happens on sender verify callout, in rcpt or pre-data ACLs.
Here is the recent example, callout from acl_check_rcpt:

Reading symbols from /usr/sbin/exim4...
[New LWP 1352271]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/sbin/exim4 -bd -q1m'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0xf7238b0d in _gnutls_trust_list_get_issuer (list=0x58441780,
cert=0x59027530, issuer=0xffbec6a8, flags=0)
at ../../../lib/x509/verify-high.c:1026
#0 0xf7238b0d in _gnutls_trust_list_get_issuer (list=0x58441780,
cert=0x59027530, issuer=0xffbec6a8, flags=0)
at ../../../lib/x509/verify-high.c:1026
ret = <optimized out>
i = 0
hash = 1408224284
#1 0xf7238be6 in gnutls_x509_trust_list_get_issuer (list=0x58441780,
cert=0x59027530, issuer=0xffbec6a8, flags=0)
at ../../../lib/x509/verify-high.c:1128
ret = <optimized out>
__func__ = "gnutls_x509_trust_list_get_issuer"
#2 0xf7239613 in gnutls_x509_trust_list_verify_crt2 (list=0x58441780,
cert_list=0xffbec6bc, cert_list_size=<optimized out>, data=0x0,
elements=0, flags=33554432, voutput=0xffbec970, func=0x0)
at ../../../lib/x509/verify-high.c:1521
sorted_size = <optimized out>
j = <optimized out>
issuer = 0xffbec704
ret = <optimized out>
i = <optimized out>
hash = <optimized out>
sorted = {0x59025230, 0x59027530, 0x5, 0x8c, 0xf73ffe7c <calloc+140>,
0xffbec810, 0xf72022f6 <_gnutls_x509_crt_get_extension+6>,
0xf7375f0c, 0x4946dc00, 0x59027530, 0xf72a922d, 0xf73fb8fb,
0xf7375f0c, 0xf65428ec, 0x58da0540, 0x59027530}
retrieved = {0xf71ebedf <rpl_free+63>, 0x585c0830, 0x0,
0xf7579885 <__errno_location+5>, 0xf71ebec1 <rpl_free+33>,
0xf65428ec, 0x0, 0x0, 0x4946dc00, 0xf71ebea7 <rpl_free+7>,
0xf7375f0c, 0x0,
0xf71c3f4c <_gnutls_ocsp_verify_mandatory_stapling+156>, 0x585c0830,
0x585c0830, 0x0}
retrieved_size = 0
hostname = <optimized out>
purpose = <optimized out>
email = <optimized out>
hostname_size = <optimized out>
have_set_name = <optimized out>
saved_output = <optimized out>
ip = {data = <optimized out>, size = <optimized out>}
cert_set = {node = <optimized out>, size = <optimized out>}
__func__ = "gnutls_x509_trust_list_verify_crt2"
__PRETTY_FUNCTION__ = "gnutls_x509_trust_list_verify_crt2"
#3 0xf71c4647 in _gnutls_x509_cert_verify_peers (session=0x58da0540,
data=0x0, elements=0, status=0xffbec970) at ../../lib/cert-session.c:597
info = <optimized out>
cred = 0x58441620
peer_certificate_list = 0x5840d9c0
resp = {data = 0x58d9fde0 "0\202\001\323\n\001", size = 471}
peer_certificate_list_size = <optimized out>
i = <optimized out>
x = <optimized out>
ret = <optimized out>
cand_issuers = <optimized out>
cand_issuers_size = <optimized out>
ocsp_status = 0
verify_flags = <optimized out>
__func__ = "_gnutls_x509_cert_verify_peers"
#4 0xf71c4f3f in gnutls_certificate_verify_peers (session=0x58da0540,
data=0x0, elements=0, status=0xffbec970) at ../../lib/cert-session.c:776
info = <optimized out>
__func__ = "gnutls_certificate_verify_peers"
#5 0xf71c4fd0 in gnutls_certificate_verify_peers2 (session=0x58da0540,
status=0xffbec970) at ../../lib/cert-session.c:653
No locals.
#6 0x566f288b in verify_certificate (state=<optimized out>, errstr=0xffbeca80)
at tls-gnu.c:2518
rc = <optimized out>
verify = 1480842840
__FUNCTION__ = "verify_certificate"
#7 0x566f4b1b in tls_client_start (cctx=0x5900d248, conn_args=0x58ffd1ec,
cookie=0x58d9e69c, tlsp=0x567d1ee0 <tls_out>, errstr=0xffbeca80)
at tls-gnu.c:3591
host = 0x584f4934
tb = <optimized out>
ob = 0x5843dd6c
rc = 0
state = 0x5843efac
cipher_list = <optimized out>
require_ocsp = 0
request_ocsp = 1
__FUNCTION__ = "tls_client_start"
#8 0x567265b6 in smtp_setup_conn (sx=<optimized out>,
suppress_tls=<optimized out>) at smtp.c:2673
buffer2 = "220 2.0.0 SMTP server ready\000\360?\377;\260>\367\354?\377.\267tV\360?\377\006\000\000\000\354?\377\250GOX\027\000\000\000\250GOXprotecti.\267tV\250GOXok\003com\000V\000\000\000\000\001\200\255\373\250GOX\250GOX\250GOX\250GOX\265GOX\277GOX\250GOX\277GOX", '\000' <repeats 20 times>, "\324\031}V\000\000\000\000\330\031}V\000\000\000\377\000\000\000\000(\023xV\001\000CM\374EOX\377\377\377\377", '\000' <repeats 12 times>, "\377\377\377\377"...
ob = <optimized out>
pass_message = 0
message = 0x0
yield = 0
tls_errstr = 0x0
__FUNCTION__ = "smtp_setup_conn"
#9 0x56700d46 in do_callout (pm_mailfrom=<optimized out>,
se_mailfrom=<optimized out>, options=<optimized out>,
callout_connect=<optimized out>, callout_overall=<optimized out>,
callout=<optimized out>, tf=0xffbedde0, host_list=<optimized out>,
addr=<optimized out>) at verify.c:677
host_af = <optimized out>
port = 25
interface = 0x0
host = <optimized out>
...
--
Eugene Berdnikov

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.95-RC2 released [ In reply to ]
On 08/09/2021 07:58, Evgeniy Berdnikov via Exim-users wrote:
> OK. Exim was recompiled with MISSING_POSIX_MEMALIGN.
> Segfaults are still here. I see no significant difference with old dumps.

Good to know.

> Fault happens on sender verify callout, in rcpt or pre-data ACLs.
> Here is the recent example, callout from acl_check_rcpt:
>
> Reading symbols from /usr/sbin/exim4...
> [New LWP 1352271]
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
> Core was generated by `/usr/sbin/exim4 -bd -q1m'.
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0 0xf7238b0d in _gnutls_trust_list_get_issuer (list=0x58441780,
> cert=0x59027530, issuer=0xffbec6a8, flags=0)
> at ../../../lib/x509/verify-high.c:1026

Looking at a current GnuTLS tree, hopefully not too different to
that used for your library version:

1012 int _gnutls_trust_list_get_issuer(gnutls_x509_trust_list_t list,
1013 gnutls_x509_crt_t cert,
1014 gnutls_x509_crt_t * issuer,
1015 unsigned int flags)
1016 {
1017 int ret;
1018 unsigned int i;
1019 size_t hash;
1020
1021 hash =
1022 hash_pjw_bare(cert->raw_issuer_dn.data,
1023 cert->raw_issuer_dn.size);
1024 hash %= list->size;
1025
1026 for (i = 0; i < list->node[hash].trusted_ca_size; i++) {
1027 ret =
1028 gnutls_x509_crt_check_issuer(cert,
1029 list->node[hash].
1030 trusted_cas[i]);

... I'd say this is likely a problem internal to GnuTLS, not directly
down to something exim passed it. You should involve the GnuTLS maintainers
at this point (but please keep me in the loop).


One item which would be useful to know: what "trust list" might have been
involved during this callout. The transport tls_verify_certificates option
controls this.

--
Cheers,
Jeremy

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.95-RC2 released [ In reply to ]
On Wed, Sep 08, 2021 at 09:50:54AM +0100, Jeremy Harris via Exim-users wrote:
> One item which would be useful to know: what "trust list" might have been
> involved during this callout. The transport tls_verify_certificates option
> controls this.

My config is based on Debian default configuration, which assigns
"/etc/ssl/certs/ca-certificates.crt" to tls_verify_certificates
(if this file exists). I have

-rw-r--r-- 1 root root 197624 Jan 24 2021 /etc/ssl/certs/ca-certificates.crt

this file was here when Exim-4.92 was running without segfaults.
File seems good, not truncated.
--
Eugene Berdnikov

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.95-RC2 released [ In reply to ]
On 2021-09-06 jgh--- via Exim-users <exim-users@exim.org> wrote:
> On 06/09/2021 08:27, Evgeniy Berdnikov via Exim-users wrote:
> > Several happened last night, 1st coredump is below.

[...]
> Can you get the actual pointer, by dumping the disassembly
> and registers? We're hitting the limits of my gdb here,
> but it might be possible to dump the value pointed to
> (assuming non-null) and hence identify the config setting.
[...]

The common bt-howtos suggest
(gdb) backtrace full
(gdb) info registers
(gdb) x/16i $pc
(gdb) thread apply all bt full
(gdb) quit

> It'd also be useful to know the version of GnuTLS;
> please run "exim4 -d -bV" and extract the version that says.

Evgeniy mentioned earlier in YTUB+hw9TgnI2R+J@sony.protva.ru that he was
running Debian package 3.7.2-2.

cu Andreas

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.95-RC2 released [ In reply to ]
Hello.

On Sat, Sep 11, 2021 at 11:16:23AM +0200, Andreas Metzler via Exim-users wrote:
> On 2021-09-06 jgh--- via Exim-users <exim-users@exim.org> wrote:
> > On 06/09/2021 08:27, Evgeniy Berdnikov via Exim-users wrote:
> > > Several happened last night, 1st coredump is below.
>
> [...]
> > Can you get the actual pointer, by dumping the disassembly
> > and registers? We're hitting the limits of my gdb here,
> > but it might be possible to dump the value pointed to
> > (assuming non-null) and hence identify the config setting.
> [...]
>
> The common bt-howtos suggest
> (gdb) backtrace full
> (gdb) info registers
> (gdb) x/16i $pc
> (gdb) thread apply all bt full
> (gdb) quit

Dear colleagues, excuse me for delayed answers. My company is moving from
one business center to another, I have to spend much time for that this
weekend. Another side of problem is that segfaults arise on production
environment, sometimes they kick outgoing mails, which become "frozen".
I have to unfreeze them by hands. Messages for postmaster are generated,
however, it's hard to monitor queues 24x7, and it's a risk for business.
That's why I rolled back to 4.94.2-7, no segfaults since this moment.

Now I'm thinking how this problem could be studied with minimum impact
for business. Maybe I'll create a separate relay with 4.95 for incoming
mails. I'll be very grateful for help with gdb and other tools.
?
> > It'd also be useful to know the version of GnuTLS;
> > please run "exim4 -d -bV" and extract the version that says.
>
> Evgeniy mentioned earlier in YTUB+hw9TgnI2R+J@sony.protva.ru that he was
> running Debian package 3.7.2-2.

Right. Both environments (faulty with 4.95~RC2-1 and good with 4.94.2-7)
uses libgnutls-dane0 3.7.2-2 and libgnutls30 3.7.2-2 Debian packages.
Output of "exim4 -d -bV" on faulty node:
------------------------------------------------------------------------
Exim version 4.95-RC2 #2 built 28-Aug-2021 11:18:59
...
Compiler: GCC [10.2.1 20210110]
Library version: Glibc: Compile: 2.31
Runtime: 2.31
Library version: BDB: Compile: Berkeley DB 5.3.28: (September 9, 2013)
Runtime: Berkeley DB 5.3.28: (September 9, 2013)
Library version: GnuTLS: Compile: 3.7.2
Runtime: 3.7.2
...
------------------------------------------------------------------------

And now info you requested. I run gdb for file "core.116601" (mentioned
in my mail 6 Sep 2021 10:27:20 +0300, without MISSING_POSIX_MEMALIGN).
------------------------------------------------------------------------
(gdb) info registers
eax 0xde7b9505 -562326267
ecx 0x570df8f0 1460533488
edx 0x53efcc1c 1408224284
ebx 0xf7312f0c -147771636
esp 0xffe86e00 0xffe86e00
ebp 0x5710d1b0 0x5710d1b0
esi 0xde7b22a0 -562355552
edi 0x0 0
eip 0xf71d5b0d 0xf71d5b0d <_gnutls_trust_list_get_issuer+61>
eflags 0x10286 [ PF SF IF RF ]
cs 0x23 35
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x3 3
gs 0x63 99

(gdb) x/16i $pc
=> 0xf71d5b0d <_gnutls_trust_list_get_issuer+61>: mov 0x4(%eax),%edx
0xf71d5b10 <_gnutls_trust_list_get_issuer+64>: test %edx,%edx
0xf71d5b12 <_gnutls_trust_list_get_issuer+66>:
jne 0xf71d5b31 <_gnutls_trust_list_get_issuer+97>
0xf71d5b14 <_gnutls_trust_list_get_issuer+68>:
jmp 0xf71d5b80 <_gnutls_trust_list_get_issuer+176>
0xf71d5b16 <_gnutls_trust_list_get_issuer+70>:
lea 0x0(%esi,%eiz,1),%esi
0xf71d5b1d <_gnutls_trust_list_get_issuer+77>: lea 0x0(%esi),%esi
0xf71d5b20 <_gnutls_trust_list_get_issuer+80>: mov 0x30(%esp),%edx
0xf71d5b24 <_gnutls_trust_list_get_issuer+84>: add $0x1,%edi
0xf71d5b27 <_gnutls_trust_list_get_issuer+87>: mov 0x4(%edx),%eax
0xf71d5b2a <_gnutls_trust_list_get_issuer+90>: add %esi,%eax
0xf71d5b2c <_gnutls_trust_list_get_issuer+92>: cmp %edi,0x4(%eax)
0xf71d5b2f <_gnutls_trust_list_get_issuer+95>:
jbe 0xf71d5b80 <_gnutls_trust_list_get_issuer+176>
0xf71d5b31 <_gnutls_trust_list_get_issuer+97>: mov (%eax),%eax
0xf71d5b33 <_gnutls_trust_list_get_issuer+99>:
lea 0x0(,%edi,4),%ecx
0xf71d5b3a <_gnutls_trust_list_get_issuer+106>: sub $0x8,%esp
0xf71d5b3d <_gnutls_trust_list_get_issuer+109>: mov %ecx,0x14(%esp)

(gdb) thread apply all bt full
GNU gdb (Debian 10.1-2) 10.1.90.20210103-git
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/sbin/exim4.95rc2-non-stripped...
[New LWP 116601]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/sbin/exim4 -bd -q1m'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0xf71d5b0d in _gnutls_trust_list_get_issuer (list=0x570df8f0,
cert=0x5710d1b0, issuer=0xffe86ef8, flags=0)
at ../../../lib/x509/verify-high.c:1026

Thread 1 (Thread 0xf64df940 (LWP 116601)):
#0 0xf71d5b0d in _gnutls_trust_list_get_issuer (list=0x570df8f0, cert=0x5710d1b0, issuer=0xffe86ef8, flags=0) at ../../../lib/x509/verify-high.c:1026
ret = <optimized out>
i = 0
hash = 1408224284
#1 0xf71d5be6 in gnutls_x509_trust_list_get_issuer (list=0x570df8f0, cert=0x5710d1b0, issuer=0xffe86ef8, flags=0) at ../../../lib/x509/verify-high.c:1128
ret = <optimized out>
__func__ = "gnutls_x509_trust_list_get_issuer"
#2 0xf71d6613 in gnutls_x509_trust_list_verify_crt2 (list=0x570df8f0, cert_list=0xffe86f0c, cert_list_size=<optimized out>, data=0x0, elements=0, flags=33554432, voutput=0xffe871c0, func=0x0) at ../../../lib/x509/verify-high.c:1521
sorted_size = <optimized out>
j = <optimized out>
issuer = 0x70
ret = <optimized out>
i = <optimized out>
hash = <optimized out>
sorted = {0x57cdbd60, 0x5710d1b0, 0x7, 0x1, 0xf739ce7c <calloc+140>, 0xffe87060, 0xf719f2f6 <_gnutls_x509_crt_get_extension+6>, 0xf7312f0c, 0xf04ad100, 0x5710d1b0, 0xf724622d, 0xf73988fb, 0xf7312f0c, 0xf64df8ec, 0x57a52190, 0x5710d1b0}
retrieved = {0xf7188edf <rpl_free+63>, 0x5727aff0, 0x0, 0xf7516885 <__errno_location+5>, 0xf7188ec1 <rpl_free+33>, 0xf64df8ec, 0x0, 0x0, 0xf04ad100, 0xf7188ea7 <rpl_free+7>, 0xf7312f0c, 0x0, 0xf7160f4c <_gnutls_ocsp_verify_mandatory_stapling+156>, 0x5727aff0, 0x5727aff0, 0x0}
retrieved_size = 0
hostname = <optimized out>
purpose = <optimized out>
email = <optimized out>
hostname_size = <optimized out>
have_set_name = <optimized out>
saved_output = <optimized out>
ip = {data = <optimized out>, size = <optimized out>}
cert_set = {node = <optimized out>, size = <optimized out>}
__func__ = "gnutls_x509_trust_list_verify_crt2"
__PRETTY_FUNCTION__ = "gnutls_x509_trust_list_verify_crt2"
#3 0xf7161647 in _gnutls_x509_cert_verify_peers (session=0x57a52190, data=0x0, elements=0, status=0xffe871c0) at ../../lib/cert-session.c:597
info = <optimized out>
cred = 0x570df790
peer_certificate_list = 0x570cc330
resp = {data = 0x57cdeb00 "0\202\001\323\n\001", size = 471}
peer_certificate_list_size = <optimized out>
i = <optimized out>
x = <optimized out>
ret = <optimized out>
cand_issuers = <optimized out>
cand_issuers_size = <optimized out>
ocsp_status = 0
verify_flags = <optimized out>
__func__ = "_gnutls_x509_cert_verify_peers"
#4 0xf7161f3f in gnutls_certificate_verify_peers (session=0x57a52190, data=0x0, elements=0, status=0xffe871c0) at ../../lib/cert-session.c:776
info = <optimized out>
__func__ = "gnutls_certificate_verify_peers"
#5 0xf7161fd0 in gnutls_certificate_verify_peers2 (session=0x57a52190, status=0xffe871c0) at ../../lib/cert-session.c:653
No locals.
#6 0x5663599b in verify_certificate (state=<optimized out>, errstr=0xffe872d0) at tls-gnu.c:2518
rc = <optimized out>
verify = 1460649816
__FUNCTION__ = "verify_certificate"
#7 0x56637c2b in tls_client_start (cctx=0x57ccb5a8, conn_args=0x57cbb54c, cookie=0x57ca1ff4, tlsp=0x56714ee0 <tls_out>, errstr=0xffe872d0) at tls-gnu.c:3591
host = 0x57ca32bc
tb = <optimized out>
ob = 0x570fbe6c
rc = 0
state = 0x570fcfb4
cipher_list = <optimized out>
require_ocsp = 0
request_ocsp = 1
__FUNCTION__ = "tls_client_start"
#8 0x566696c6 in smtp_setup_conn (sx=<optimized out>, suppress_tls=<optimized out>) at smtp.c:2673
buffer2 = "220 2.7.0 Ready to start TLS\000t\350\377;\200\070\367<s\350\377.\347hV@t\350\377\006\000\000\000<s\350\377`1\312W\027\000\000\000`1\312W\002ru\000\214&qV.\347hV`1\312Wl-\312W\025\020cV\000\000\000\000\001\200\255\373`1\312W`1\312W`1\312W`1\312Wl1\312Ww1\312W`1\312Ww1\312W", '\000' <repeats 20 times>, "\324IqV\000\000\000\000\330IqV\000\000\000\377\000\000\000\000HClV\001\000CM\204/\312W\377\377\377\377", '\000' <repeats 12 times>...
ob = <optimized out>
pass_message = 0
message = 0x0
yield = 0
tls_errstr = 0x0
__FUNCTION__ = "smtp_setup_conn"
#9 0x56643e56 in do_callout (pm_mailfrom=<optimized out>, se_mailfrom=<optimized out>, options=<optimized out>, callout_connect=<optimized out>, callout_overall=<optimized out>, callout=<optimized out>, tf=0xffe88630, host_list=<optimized out>, addr=<optimized out>) at verify.c:677
host_af = <optimized out>
port = 25
interface = 0x0
host = <optimized out>
ob = <optimized out>
sx = 0x57cbb544
yield = 0
from_address = <optimized out>
random_local_part = 0x0
save_deliver_domain = <optimized out>
failure_ptr = <optimized out>
callout_start_time = <optimized out>
old_domain_cache_result = <optimized out>
done = 0
address_key = <optimized out>
new_domain_record = {time_stamp = -147406423, result = 0, postmaster_result = 0, random_result = 0, postmaster_stamp = 1472965820, random_stamp = 32}
new_address_record = {time_stamp = 0, result = 0}
yield = <optimized out>
old_domain_cache_result = <optimized out>
done = <optimized out>
address_key = <optimized out>
from_address = <optimized out>
random_local_part = <optimized out>
save_deliver_domain = <optimized out>
failure_ptr = <optimized out>
new_domain_record = {time_stamp = <optimized out>, result = <optimized out>, postmaster_result = <optimized out>, random_result = <optimized out>, postmaster_stamp = <optimized out>, random_stamp = <optimized out>}
new_address_record = {time_stamp = <optimized out>, result = <optimized out>}
callout_start_time = <optimized out>
__FUNCTION__ = "do_callout"
END_CALLOUT = <optimized out>
tls_retry_connection = <optimized out>
no_conn = <optimized out>
ob = <optimized out>
sx = <optimized out>
host = <optimized out>
host_af = <optimized out>
port = <optimized out>
interface = <optimized out>
main_address = <optimized out>
rcpt_domain = <optimized out>
errstr = <optimized out>
main_address = <optimized out>
s = <optimized out>
c = <optimized out>
oldpool = <optimized out>
caddr = <optimized out>
parent = <optimized out>
dullmsg = <optimized out>
#10 verify_address (vaddr=<optimized out>, fp=<optimized out>, options=<optimized out>, callout=<optimized out>, callout_overall=<optimized out>, callout_connect=<optimized out>, se_mailfrom=<optimized out>, pm_mailfrom=<optimized out>, routed=<optimized out>) at verify.c:1947
tp = <optimized out>
host_list = 0x57ca32bc
tf = {interface = 0x0, port = 0x5668ed4e "smtp", protocol = 0x5668ed4e "smtp", hosts = 0x0, helo_data = 0x566c0e96 "$primary_hostname", hosts_override = 0, hosts_randomize = 0, gethostbyname = 0, qualify_single = 1, search_parents = 0}
local_verify = <optimized out>
rc = <optimized out>
addr = <optimized out>
allok = <optimized out>
full_info = <optimized out>
expn = <optimized out>
success_on_redirect = <optimized out>
i = <optimized out>
yield = <optimized out>
verify_type = <optimized out>
addr_list = <optimized out>
addr_new = 0x0
addr_remote = 0x57ca1ff4
addr_local = 0x0
addr_succeed = 0x0
failure_ptr = <optimized out>
ko_prefix = <optimized out>
cr = <optimized out>
address = <optimized out>
save_sender = <optimized out>
null_sender = ""
#11 0x565a6642 in acl_verify (where=where@entry=2, addr=addr@entry=0x0, arg=<optimized out>, user_msgptr=<optimized out>, log_msgptr=<optimized out>, basic_errno=<optimized out>) at acl.c:2116
routed = 1
save_address_data = <optimized out>
sep = 47
callout = <optimized out>
callout_overall = <optimized out>
callout_connect = <optimized out>
verify_options = <optimized out>
rc = <optimized out>
verify_header_sender = <optimized out>
defer_ok = <optimized out>
callout_defer_ok = <optimized out>
no_details = <optimized out>
success_on_redirect = <optimized out>
quota = <optimized out>
quota_pos_cache = <optimized out>
quota_neg_cache = <optimized out>
sender_vaddr = 0x57ca1ff4
verify_sender_address = <optimized out>
pm_mailfrom = <optimized out>
se_mailfrom = <optimized out>
slash = <optimized out>
list = 0x570e8c5a ""
ss = <optimized out>
__FUNCTION__ = "acl_verify"
vp = <optimized out>
#12 0x565a868e in acl_check_condition (level=<optimized out>, basic_errno=0xffe88e4c, log_msgptr=<optimized out>, user_msgptr=<optimized out>, epp=<synthetic pointer>, addr=<optimized out>, where=<optimized out>, cb=0x570e8c38, verb=<optimized out>) at acl.c:3838
arg = 0x570e8c48 "sender/callout=90s"
control_type = <optimized out>
user_message = <optimized out>
log_message = 0x0
rc = 0
sep = -47
user_message = <optimized out>
log_message = <optimized out>
rc = <optimized out>
sep = <optimized out>
__FUNCTION__ = "acl_check_condition"
arg = <optimized out>
control_type = <optimized out>
lhswidth = <optimized out>
p = <optimized out>
fd = <optimized out>
af = <optimized out>
level = <optimized out>
optname = <optimized out>
value = <optimized out>
pp = <optimized out>
pp = <optimized out>
pp = <optimized out>
debug_tag = <optimized out>
debug_opts = <optimized out>
kill = <optimized out>
pp = <optimized out>
ignored = <optimized out>
pp = <optimized out>
delay = <optimized out>
p = {fd = <optimized out>, events = <optimized out>, revents = <optimized out>}
n = <optimized out>
endcipher = <optimized out>
cipher = <optimized out>
logbits = <optimized out>
sep = <optimized out>
s = <optimized out>
ss = <optimized out>
logbits = <optimized out>
s = <optimized out>
list = <optimized out>
ss = <optimized out>
opt = <optimized out>
defer_ok = <optimized out>
timeout = <optimized out>
m = <optimized out>
sdomain = <optimized out>
old_pool = <optimized out>
list = <optimized out>
ss = <optimized out>
expmessage = <optimized out>
old_user_msgptr = <optimized out>
old_log_msgptr = <optimized out>
#13 acl_check_internal (where=<optimized out>, addr=<optimized out>, s=<optimized out>, user_msgptr=<optimized out>, log_msgptr=<optimized out>) at acl.c:4225
cond = <optimized out>
basic_errno = 0
endpass_seen = 0
acl_quit_check = <optimized out>
fd = <optimized out>
acl = <optimized out>
acl_name = <optimized out>
ss = <optimized out>
__FUNCTION__ = "acl_check_internal"
#14 0x565abcb1 in acl_check (where=2, recipient=0x0, s=0x570e3198 "acl_custom_check_predata", user_msgptr=0xffe895c8, log_msgptr=0xffe895c4) at acl.c:4539
rc = <optimized out>
adb = {next = 0x571ff0f3, parent = 0x5, first = 0x5736b3b0, dupof = 0x0, start_router = 0x57a38284, router = 0x23001e, transport = 0x571ff0f0, host_list = 0x6, host_used = 0xf04ad100, fallback_hosts = 0x0, reply = 0x0, retries = 0xf751459b <__libc_sigaction+11>, address = 0xf751f000 "\250\356\001", unique = 0xffe88fe0 "0{\\V", cc_local_part = 0x5 <error: Cannot access memory at address 0x5>, lc_local_part = 0x5671268c "\354\304\030", local_part = 0xf7514744 <sigaction+52> "\203\304\020\203\304\b[.?t&", prefix = 0xe <error: Cannot access memory at address 0xe>, prefix_v = 0xffe88fe0 "0{\\V", suffix = 0x0, suffix_v = 0x1000 <error: Cannot access memory at address 0x1000>, domain = 0x0, address_retry_key = 0xf7514716 <sigaction+6> "\201\303", <incomplete sequence \352\250>, domain_retry_key = 0x5671268c "\354\304\030", current_dir = 0x565f1836 <os_non_restarting_signal+86> "\211\364\213\204$\214", home_dir = 0xe <error: Cannot access memory at address 0xe>, message = 0xffe88fe0 "0{\\V", user_message = 0x0, onetime_parent = 0xf7312f0c "\274-\"", pipe_expandn = 0x565c7b30 <sigalrm_handler>, return_filename = 0x0, self_hostname = 0x0, shadow_message = 0x0, tlsver = 0x0, cipher = 0x0, ourcert = 0x0, peercert = 0x0, peerdn = 0x0, ocsp = 0, authenticator = 0x0, auth_id = 0x0, auth_sndr = 0x0, dsn_orcpt = 0x0, dsn_flags = 0, dsn_aware = 0, uid = 0, gid = 0, flags = {af_allow_file = 0, af_allow_pipe = 0, af_allow_reply = 0, af_dr_retry_exists = 0, af_expand_pipe = 0, af_file = 0, af_gid_set = 0, af_home_expanded = 0, af_initgroups = 0, af_local_host_removed = 0, af_lt_retry_exists = 0, af_pfr = 0, af_retry_skipped = 0, af_retry_timedout = 0, af_uid_set = 0, af_hide_child = 0, af_sverify_told = 0, af_verify_pmfail = 0, af_verify_nsfail = 0, af_homonym = 0, af_verify_routed = 0, af_verify_callout = 0, af_include_affixes = 0, af_new_conn = 0, af_cont_conn = 0, af_cert_verified = 0, af_pass_message = 0, af_bad_reply = 0, af_tcp_fastopen_conn = 0, af_tcp_fastopen = 0, af_tcp_fastopen_data = 0, af_pipelining = 0, af_early_pipe = 0, af_prdr_used = 0, af_chunking_used = 0, af_force_command = 0, af_dane_verified = 0, af_utf8_downcvt = 0, af_tls_resume = 0}, domain_cache = {0, 0}, localpart_cache = {0, 0}, mode = 0, basic_errno = 0, more_errno = 0, delivery_time = {tv_sec = 0, tv_usec = 0}, child_count = 0, return_file = 0, special_action = 17349, transport_return = -2252, prop = {address_data = 0x5663055d <strncmpic+45> "\203\305\001\017\266\016\203\306\001\213\020\017\266E\377\213\004\202+\004\212u\006\071\376u\340\061\300\203\304\f[^_]?\264&", domain_data = 0x0, localpart_data = 0x0, errors_address = 0x56630539 <strncmpic+9> "\201\303S!\016", extra_headers = 0x5671268c, remove_headers = 0x5671268c "\354\304\030", variables = 0x56716b40 <cmd_list+128>, ignore_error = 0, utf8_msg = 0, utf8_downcvt = 0, utf8_downcvt_maybe = 0}}
addr = 0x0
#15 0x56623fd1 in smtp_setup_msg () at smtp_in.c:5435
acl = <optimized out>
mail_args = <optimized out>
sender_domain = 6
etrn_command = <optimized out>
log_msg = 0x0
smtp_code = 0x10 <error: Cannot access memory at address 0x10>
ss = 0xffe895e0 "\020"
recipient_domain = 16
g = <optimized out>
argv = 0x10
etrn_serialize_key = <optimized out>
s = 0x0
was_rej_mail = 0
oldsignal = <optimized out>
start = 1
c = <optimized out>
orcpt = 0x0
recipient = 0x0
was_rcpt = 0
pid = <optimized out>
rc = <optimized out>
errmess = 0x0
user_msg = 0x0
hello = 0x0
end = 25
dsn_flags = <optimized out>
done = <optimized out>
toomany = <optimized out>
discarded = <optimized out>
last_was_rej_mail = <optimized out>
last_was_rcpt = <optimized out>
reset_point = <optimized out>
__FUNCTION__ = "smtp_setup_msg"
__PRETTY_FUNCTION__ = "smtp_setup_msg"
#16 0x565afe00 in handle_smtp_call (accepted=0xffe89988, accept_socket=<optimized out>, listen_socket_count=<optimized out>, listen_sockets=<optimized out>) at daemon.c:551
rc = <optimized out>
queue_only_reason = 0
old_pool = <optimized out>
save_debug_selector = <optimized out>
local_queue_only = <optimized out>
session_local_queue_only = 0
act = {__sigaction_handler = {sa_handler = 0x1, sa_sigaction = 0x1}, sa_mask = {__val = {0 <repeats 32 times>}}, sa_flags = 2, sa_restorer = 0x0}
pid = 0
ifsize = 16
interface_sockaddr = {v4 = {sin_family = 2, sin_port = 6400, sin_addr = {s_addr = 218802368}, sin_zero = "\000\000\000\000\000\000\000"}, v6 = {sin6_family = 2, sin6_port = 6400, sin6_flowinfo = 218802368, sin6_addr = {__in6_u = {__u6_addr8 = '\000' <repeats 11 times>, "\n\000\000\000", __u6_addr16 = {0, 0, 0, 0, 0, 2560, 0, 0}, __u6_addr32 = {0, 0, 167772160, 0}}}, sin6_scope_id = 0}, v0 = {sa_family = 2, sa_data = "\000\031\300\250\n\r\000\000\000\000\000\000\000"}}
dup_accept_socket = <optimized out>
max_for_this_host = <optimized out>
save_log_selector = <optimized out>
whofrom = <optimized out>
reset_point = 0x57365574
pid = <optimized out>
interface_sockaddr = {v4 = {sin_family = <optimized out>, sin_port = <optimized out>, sin_addr = {s_addr = <optimized out>}, sin_zero = {<optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>}}, v6 = {sin6_family = <optimized out>, sin6_port = <optimized out>, sin6_flowinfo = <optimized out>, sin6_addr = {__in6_u = {__u6_addr8 = {<optimized out> <repeats 16 times>}, __u6_addr16 = {<optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>}, __u6_addr32 = {<optimized out>, <optimized out>, <optimized out>, <optimized out>}}}, sin6_scope_id = <optimized out>}, v0 = {sa_family = <optimized out>, sa_data = {<optimized out> <repeats 14 times>}}}
ifsize = <optimized out>
dup_accept_socket = <optimized out>
max_for_this_host = <optimized out>
save_log_selector = <optimized out>
whofrom = <optimized out>
reset_point = <optimized out>
__FUNCTION__ = "handle_smtp_call"
ERROR_RETURN = <optimized out>
expanded = <optimized out>
s = <optimized out>
host_accept_count = <optimized out>
other_host_count = <optimized out>
i = <optimized out>
list = <optimized out>
queue_only_reason = <optimized out>
old_pool = <optimized out>
save_debug_selector = <optimized out>
local_queue_only = <optimized out>
session_local_queue_only = <optimized out>
act = {__sigaction_handler = {sa_handler = <optimized out>, sa_sigaction = <optimized out>}, sa_mask = {__val = {<optimized out> <repeats 32 times>}}, sa_flags = <optimized out>, sa_restorer = <optimized out>}
nah = <optimized out>
rc = <optimized out>
ok = <optimized out>
fd = <optimized out>
buf = {<optimized out> <repeats 128 times>}
i = <optimized out>
i = <optimized out>
r = <optimized out>
q = <optimized out>
dpid = <optimized out>
i = <optimized out>
#17 daemon_go () at daemon.c:2594
accept_socket = <optimized out>
accepted = {sin6_family = 2, sin6_port = 38059, sin6_flowinfo = 1377758137, sin6_addr = {__in6_u = {__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, sin6_scope_id = 1460493328}
check_lsk = <optimized out>
lcount = <optimized out>
select_failed = <optimized out>
fds = {fds_bits = {16, 0 <repeats 31 times>}}
pid = <optimized out>
pw = <optimized out>
listen_sockets = <optimized out>
listen_socket_count = <optimized out>
listen_fd_max = 10
select_listen = {fds_bits = {632, 0 <repeats 31 times>}}
addresses = 0x570de0f4
last_connection_time = <optimized out>
local_queue_run_max = <optimized out>
__FUNCTION__ = "daemon_go"
__d = <optimized out>
#18 0x565a0116 in main (argc=<optimized out>, cargv=<optimized out>) at exim.c:4947
argv = <optimized out>
arg_receive_timeout = -1
arg_smtp_receive_timeout = -1
arg_error_handling = <optimized out>
filter_sfd = -1
filter_ufd = -1
group_count = <optimized out>
i = <optimized out>
rv = <optimized out>
list_queue_option = <optimized out>
msg_action = 0
msg_action_arg = -1
namelen = <optimized out>
queue_only_reason = 0
perl_start_option = <optimized out>
recipients_arg = 3
sender_address_domain = 0
test_retry_arg = -1
test_rewrite_arg = -1
original_egid = <optimized out>
arg_queue_only = <optimized out>
bi_option = <optimized out>
checking = <optimized out>
count_queue = <optimized out>
expansion_test = <optimized out>
extract_recipients = <optimized out>
flag_G = <optimized out>
flag_n = <optimized out>
forced_delivery = 0
f_end_dot = <optimized out>
deliver_give_up = 0
list_queue = <optimized out>
list_options = <optimized out>
list_config = <optimized out>
local_queue_only = <optimized out>
more = 1
one_msg_action = 0
opt_D_used = <optimized out>
queue_only_set = <optimized out>
receiving_message = <optimized out>
sender_ident_set = <optimized out>
session_local_queue_only = <optimized out>
unprivileged = <optimized out>
removed_privilege = <optimized out>
usage_wanted = <optimized out>
verify_address_mode = <optimized out>
verify_as_sender = <optimized out>
rcpt_verify_quota = <optimized out>
version_printed = <optimized out>
alias_arg = <optimized out>
called_as = <optimized out>
cmdline_syslog_name = <optimized out>
start_queue_run_id = <optimized out>
stop_queue_run_id = <optimized out>
expansion_test_message = <optimized out>
ftest_domain = <optimized out>
ftest_localpart = <optimized out>
ftest_prefix = <optimized out>
ftest_suffix = <optimized out>
log_oneline = <optimized out>
malware_test_file = <optimized out>
real_sender_address = <optimized out>
originator_home = 0x570de064 "/root"
sz = <optimized out>
pw = 0xf74fe9e4
statbuf = {st_dev = 40, __pad1 = 0, __st_ino = 11, st_mode = 8592, st_nlink = 1, st_uid = 0, st_gid = 5, st_rdev = 34824, __pad2 = 0, st_size = 0, st_blksize = 1024, st_blocks = 0, st_atim = {tv_sec = 1630842173, tv_nsec = 37236752}, st_mtim = {tv_sec = 1630842177, tv_nsec = 37236752}, st_ctim = {tv_sec = 1630839984, tv_nsec = 37236752}, st_ino = 11}
passed_qr_pid = <optimized out>
passed_qr_pipe = <optimized out>
group_list = <error reading variable group_list (value requires 262144 bytes, which is more than max-value-size)>
info_flag = <optimized out>
info_stdout = <optimized out>
rsopts = {0x56695535 "f", 0x566bd748 "ff", 0x566b0bec "r", 0x5668f945 "rf", 0x5668f948 "rff"}
__FUNCTION__ = "main"
(gdb) quit
------------------------------------------------------------------------

--
Eugene Berdnikov

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/