X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/2ba76be6f9d89d993092bad22a788fedf816ce77..f168d6a2c93ee92d87744ce09c45a0ec666f889c:/src/src/spool_mbox.c diff --git a/src/src/spool_mbox.c b/src/src/spool_mbox.c index 8b2aae394..fbd01c30e 100644 --- a/src/src/spool_mbox.c +++ b/src/src/spool_mbox.c @@ -2,9 +2,11 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) Tom Kistner 2003 - 2015 +/* + * Copyright (c) The Exim Maintainers 2016 - 2023 + * Copyright (c) Tom Kistner 2003 - 2015 * License: GPL - * Copyright (c) The Exim Maintainers 2016 - 2021 + * SPDX-License-Identifier: GPL-2.0-or-later */ /* Code for setting up a MBOX style spool file inside a /scan/ @@ -98,6 +100,7 @@ if (!spool_mbox_ok) } /* End headers */ + if (fwrite("\n", 1, 1, mbox_file) != 1) { log_write(0, LOG_MAIN|LOG_PANIC, "Error/short write while writing \ @@ -108,20 +111,18 @@ if (!spool_mbox_ok) /* Copy body file. If the main receive still has it open then it is holding a lock, and we must not close it (which releases the lock), so just use the global file handle. */ + if (source_file_override) l_data_file = Ufopen(source_file_override, "rb"); else if (spool_data_file) l_data_file = spool_data_file; else - { - message_subdir[1] = '\0'; for (int i = 0; i < 2; i++) { set_subdir_str(message_subdir, message_id, i); temp_string = spool_fname(US"input", message_subdir, message_id, US"-D"); if ((l_data_file = Ufopen(temp_string, "rb"))) break; } - } if (!l_data_file) { @@ -140,7 +141,7 @@ if (!spool_mbox_ok) explicitly, because the one in the file is parted of the locked area. */ if (!source_file_override) - (void)fseek(l_data_file, SPOOL_DATA_START_OFFSET, SEEK_SET); + (void)fseek(l_data_file, spool_data_start_offset(message_id), SEEK_SET); do {