X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/a2da3176aa39ec9aa5ae495e5a6d533477f871aa..383832efc13b2027e89426a952430158028a3b0f:/src/src/spool_mbox.c diff --git a/src/src/spool_mbox.c b/src/src/spool_mbox.c index 7ee34b551..b1de39e7d 100644 --- a/src/src/spool_mbox.c +++ b/src/src/spool_mbox.c @@ -114,8 +114,7 @@ if (!spool_mbox_ok) for (i = 0; i < 2; i++) { message_subdir[0] = split_spool_directory == (i == 0) ? message_id[5] : 0; - temp_string = string_sprintf("%s/input/%s/%s/%s-D", - spool_directory, queue_name, message_subdir, message_id); + temp_string = spool_fname(US"input", message_subdir, message_id, US"-D"); if ((data_file = Ufopen(temp_string, "rb"))) break; } } @@ -166,15 +165,14 @@ if (!spool_mbox_ok) } /* get the size of the mbox message and open [message_id].eml file for reading*/ -if (Ustat(mbox_path, &statbuf) != 0 || - (yield = Ufopen(mbox_path,"rb")) == NULL) - { + +if ( !(yield = Ufopen(mbox_path,"rb")) + || fstat(fileno(yield), &statbuf) != 0 + ) log_write(0, LOG_MAIN|LOG_PANIC, "%s", string_open_failed(errno, "scan file %s", mbox_path)); - goto OUT; - } - -*mbox_file_size = statbuf.st_size; +else + *mbox_file_size = statbuf.st_size; OUT: if (data_file) (void)fclose(data_file); @@ -198,7 +196,6 @@ if (spool_mbox_ok && !no_mbox_unspool) { uschar *mbox_path; uschar *file_path; - int n; struct dirent *entry; DIR *tempdir; @@ -216,11 +213,12 @@ if (spool_mbox_ok && !no_mbox_unspool) while((entry = readdir(tempdir)) != NULL) { uschar *name = US entry->d_name; + int dummy; if (Ustrcmp(name, US".") == 0 || Ustrcmp(name, US"..") == 0) continue; file_path = string_sprintf("%s/%s", mbox_path, name); debug_printf("unspool_mbox(): unlinking '%s'\n", file_path); - n = unlink(CS file_path); + dummy = unlink(CS file_path); } closedir(tempdir);