modified for Gentoo, removed Changelog change due to conflicts From e7ec503729970a03d4509921342bc81313976126 Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Tue, 12 Jul 2022 22:14:04 +0100 Subject: [PATCH] Fix exit on attempt to rewrite a malformed address. Bug 2903 --- doc/ChangeLog | 5 + src/rewrite.c | 9 +- test/confs/0471 | 7 + test/log/0471 | 5 + test/scripts/0000-Basic/0471 | 4 +- test/stderr/0471 | 245 ++++++++++++++++++++++++++++++++++- 6 files changed, 267 insertions(+), 8 deletions(-) --- a/src/rewrite.c +++ b/src/rewrite.c @@ -493,19 +493,18 @@ empty address, overlong addres. Sometimes the result matters, sometimes not. It seems this function is called for *any* header we see. */ if (!recipient) { - /* Handle unparesable addresses in the header. Slightly ugly because a + /* Log unparesable addresses in the header. Slightly ugly because a null output from the extract can also result from a header without an - address, "To: undisclosed recpients:;" being the classic case. */ + address, "To: undisclosed recpients:;" being the classic case. Ignore + this one and carry on. */ if ((rewrite_rules || routed_old) && Ustrcmp(errmess, "empty address") != 0) - { log_write(0, LOG_MAIN, "rewrite: %s", errmess); - exim_exit(EXIT_FAILURE); - } + loop_reset_point = store_reset(loop_reset_point); continue; } /* If routed_old is not NULL, this is a rewrite caused by a router,