X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/6c6d6e483411af2c087ff258f4041d38eb65e775..d5c0d8c9374623620844d539d4810da63e9abca1:/src/src/transports/lmtp.c diff --git a/src/src/transports/lmtp.c b/src/src/transports/lmtp.c index 1f4d7a6bf..c4606ef8b 100644 --- a/src/src/transports/lmtp.c +++ b/src/src/transports/lmtp.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2015 */ +/* Copyright (c) University of Cambridge 1995 - 2016 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -106,7 +106,7 @@ Arguments: more_errno from the top address for use with ERRNO_FILTER_FAIL buffer the LMTP response buffer yield where to put a one-digit LMTP response code - message where to put an errror message + message where to put an error message Returns: TRUE if a "QUIT" command should be sent, else FALSE */ @@ -217,6 +217,7 @@ va_list ap; va_start(ap, format); if (!string_vformat(big_buffer, big_buffer_size, CS format, ap)) { + va_end(ap); errno = ERRNO_SMTPFORMAT; return FALSE; } @@ -608,6 +609,12 @@ for (addr = addrlist; addr != NULL; addr = addr->next) if (send_data) { BOOL ok; + transport_ctx tctx = { + tblock, + addrlist, + US".", US"..", + ob->options + }; if (!lmtp_write_command(fd_in, "DATA\r\n")) goto WRITE_FAILED; if (!lmtp_read_response(out, buffer, sizeof(buffer), '3', timeout)) @@ -627,9 +634,7 @@ if (send_data) debug_printf(" LMTP>> writing message and terminating \".\"\n"); transport_count = 0; - ok = transport_write_message(addrlist, fd_in, ob->options, 0, - tblock->add_headers, tblock->remove_headers, US".", US"..", - tblock->rewrite_rules, tblock->rewrite_existflags); + ok = transport_write_message(fd_in, &tctx, 0); /* Failure can either be some kind of I/O disaster (including timeout), or the failure of a transport filter or the expansion of added headers. */