X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/d4095f83496094d7d8649cc412536f69d1cfcb6a..158b02e0e2e6c4693bdbba50009a329be3a05f77:/src/src/verify.c diff --git a/src/src/verify.c b/src/src/verify.c index efc05fcf1..c182e12e1 100644 --- a/src/src/verify.c +++ b/src/src/verify.c @@ -3,7 +3,7 @@ *************************************************/ /* Copyright (c) University of Cambridge 1995 - 2018 */ -/* Copyright (c) The Exim Maintainers 2020 */ +/* Copyright (c) The Exim Maintainers 2020 - 2021 */ /* See the file NOTICE for conditions of use and distribution. */ /* Functions concerned with verifying things. The original code for callout @@ -113,7 +113,7 @@ int options = *opt_ptr; open_db dbblock; open_db *dbm_file = NULL; -/* Open the callout cache database, it it exists, for reading only at this +/* Open the callout cache database, if it exists, for reading only at this stage, unless caching has been disabled. */ if (options & vopt_callout_no_cache) @@ -654,7 +654,7 @@ coding means skipping this whole loop and doing the append separately. */ if (!sx) sx = store_get(sizeof(*sx), TRUE); /* tainted buffers */ memset(sx, 0, sizeof(*sx)); - sx->addrlist = addr; + sx->addrlist = sx->first_addr = addr; sx->conn_args.host = host; sx->conn_args.host_af = host_af, sx->port = port; @@ -1685,7 +1685,8 @@ if (parse_find_at(address) == NULL) *failure_ptr = US"qualify"; return FAIL; } - address = rewrite_address_qualify(address, options & vopt_is_recipient); + /* deconst ok as address was not const */ + address = US rewrite_address_qualify(address, options & vopt_is_recipient); } DEBUG(D_verify) @@ -1700,7 +1701,8 @@ may have been set by domains and local part tests during an ACL. */ if (global_rewrite_rules) { uschar *old = address; - address = rewrite_address(address, options & vopt_is_recipient, FALSE, + /* deconst ok as address was not const */ + address = US rewrite_address(address, options & vopt_is_recipient, FALSE, global_rewrite_rules, rewrite_existflags); if (address != old) { @@ -3388,8 +3390,8 @@ if ((rc = verify_address(&vaddr, NULL, vopt_is_recipient | vopt_quota, len = 5 + Ustrlen(msg) + 1 + Ustrlen(where); msg = string_sprintf("%c%c%c%c%c%s%c%s", (uschar)rc, - (vaddr.basic_errno >> 24) && 0xff, (vaddr.basic_errno >> 16) && 0xff, - (vaddr.basic_errno >> 8) && 0xff, vaddr.basic_errno && 0xff, + (vaddr.basic_errno >> 24) & 0xff, (vaddr.basic_errno >> 16) & 0xff, + (vaddr.basic_errno >> 8) & 0xff, vaddr.basic_errno & 0xff, where, '\0', msg); } @@ -3575,9 +3577,10 @@ else close(pfd[pipe_read]); errno = save_errno; +return yield; fail: - +DEBUG(D_verify) debug_printf_indent("verify_quota_call fail in %s\n", where); return yield; }