X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/d6c829b9a350f61c98196768e3260beb3cbecbfe..a85c067ba6c6940512cf57ec213277a370d87e70:/src/src/moan.c?ds=sidebyside diff --git a/src/src/moan.c b/src/src/moan.c index 31d033c1a..387359458 100644 --- a/src/src/moan.c +++ b/src/src/moan.c @@ -2,8 +2,10 @@ * Exim - an Internet mail transport agent * *************************************************/ +/* Copyright (c) The Exim Maintainers 2020 - 2022 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* Functions for sending messages to sender or to mailmaster. */ @@ -63,7 +65,7 @@ if (!message_id) if (h->type == htype_id) { message_id = Ustrchr(h->text, ':') + 1; - while (isspace(*message_id)) message_id++; + Uskip_whitespace(&message_id); } for (h = header_list; h; h = h->next) @@ -85,7 +87,8 @@ if (h || message_id) fprintf(fp, "References:"); if (h) { - uschar * s, * id, * error; + const uschar * s; + uschar * id, * error; uschar * referenced_ids[12]; int reference_count = 0; @@ -160,15 +163,16 @@ if ( ident == ERRMESS_DMARC_FORENSIC && (s2 = expand_string(string_sprintf("${address:%s}", s))) && *s2 ) - pid = child_open_exim2(&fd, s2, bounce_sender_authentication); + pid = child_open_exim2(&fd, s2, bounce_sender_authentication, + US"moan_send_message"); else { s = NULL; - pid = child_open_exim(&fd); + pid = child_open_exim(&fd, US"moan_send_message"); } #else -pid = child_open_exim(&fd); +pid = child_open_exim(&fd, US"moan_send_message"); #endif if (pid < 0) @@ -383,7 +387,7 @@ if (bounce_return_message) if (bounce_return_body && message_file) { BOOL enddot = f.dot_ends && message_file == stdin; - uschar * buf = store_get(bounce_return_linesize_limit+2, TRUE); + uschar * buf = store_get(bounce_return_linesize_limit+2, GET_TAINTED); if (firstline) fprintf(fp, "%s", CS firstline); @@ -584,7 +588,7 @@ moan_tell_someone(uschar *who, address_item *addr, FILE *f; va_list ap; int fd; -int pid = child_open_exim(&fd); +int pid = child_open_exim(&fd, US"moan_tell_someone"); if (pid < 0) { @@ -691,7 +695,7 @@ fprintf(stderr, "%d previous message%s successfully processed.\n", fprintf(stderr, "The rest of the batch was abandoned.\n"); -exim_exit(yield, US"batch"); +exim_exit(yield); } @@ -716,7 +720,6 @@ moan_check_errorcopy(uschar *recipient) uschar *item, *localpart, *domain; const uschar *listptr = errors_copy; uschar *yield = NULL; -uschar buffer[256]; int sep = 0; int llen; @@ -732,7 +735,7 @@ llen = domain++ - recipient; /* Scan through the configured items */ -while ((item = string_nextinlist(&listptr, &sep, buffer, sizeof(buffer)))) +while ((item = string_nextinlist(&listptr, &sep, NULL, 0))) { const uschar *newaddress = item; const uschar *pattern = string_dequote(&newaddress); @@ -820,7 +823,7 @@ if (!(s = expand_string(syntax_errors_to))) /* If we can't create a process to send the message, just forget about it. */ -pid = child_open_exim(&fd); +pid = child_open_exim(&fd, US"moan_skipped_syntax_errors"); if (pid < 0) {