X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/a85c067ba6c6940512cf57ec213277a370d87e70..56a6b0606bb11f53653e9d208f81ffffc4b1d5a6:/src/src/spool_mbox.c diff --git a/src/src/spool_mbox.c b/src/src/spool_mbox.c index d9767ec3c..0a2a1d27d 100644 --- a/src/src/spool_mbox.c +++ b/src/src/spool_mbox.c @@ -5,7 +5,7 @@ /* Copyright (c) Tom Kistner 2003 - 2015 * License: GPL * Copyright (c) The Exim Maintainers 2016 - 2021 - * SPDX-License-Identifier: GPL-2.0-only + * SPDX-License-Identifier: GPL-2.0-or-later */ /* Code for setting up a MBOX style spool file inside a /scan/ @@ -99,6 +99,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 \ @@ -109,20 +110,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) { @@ -141,7 +140,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 {