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/