X-Git-Url: https://vcs.fsf.org/?p=exim.git;a=blobdiff_plain;f=src%2Fsrc%2Ftransports%2Ftf_maildir.c;h=4caf0cdcfd916359f99a2baed1d4bd2e7a35988e;hp=472b0764dd41c90c750fad3e8e36a9177c0560bd;hb=f9ba5e2255cf18092750fffacb6a9603571a2be5;hpb=660242ad27370c2190afb53bc50efa949b06f5f0 diff --git a/src/src/transports/tf_maildir.c b/src/src/transports/tf_maildir.c index 472b0764d..4caf0cdcf 100644 --- a/src/src/transports/tf_maildir.c +++ b/src/src/transports/tf_maildir.c @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/src/transports/tf_maildir.c,v 1.14 2009/11/16 19:56:54 nm4 Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2009 */ +/* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* Functions in support of the use of maildirsize files for handling quotas in @@ -48,7 +46,7 @@ BOOL maildir_ensure_directories(uschar *path, address_item *addr, { int i; struct stat statbuf; -char *subdirs[] = { "/tmp", "/new", "/cur" }; +const char *subdirs[] = { "/tmp", "/new", "/cur" }; DEBUG(D_transport) debug_printf("ensuring maildir directories exist in %s\n", path); @@ -62,16 +60,16 @@ loop so that code can be shared. */ for (i = 0; i < 4; i++) { int j; - uschar *dir, *mdir; + const uschar *dir, *mdir; if (i == 0) { - mdir = US""; + mdir = CUS""; dir = path; } else { - mdir = US subdirs[i-1]; + mdir = CUS subdirs[i-1]; dir = mdir + 1; } @@ -213,10 +211,12 @@ int len; uschar buffer[256]; sprintf(CS buffer, "%d 1\n", size); len = Ustrlen(buffer); -(void)lseek(fd, 0, SEEK_END); -(void)write(fd, buffer, len); -DEBUG(D_transport) - debug_printf("added '%.*s' to maildirsize file\n", len-1, buffer); +if (lseek(fd, 0, SEEK_END) >= 0) + { + len = write(fd, buffer, len); + DEBUG(D_transport) + debug_printf("added '%.*s' to maildirsize file\n", len-1, buffer); + } } @@ -358,7 +358,7 @@ Or, at least, it is supposed to! Arguments: path the path to the maildir directory; this is already backed-up - to the parent if the delivery diretory is a maildirfolder + to the parent if the delivery directory is a maildirfolder ob the appendfile options block regex a compiled regex for getting a file's size from its name dir_regex a compiled regex for selecting maildir directories @@ -556,8 +556,8 @@ else FALSE); (void)gettimeofday(&tv, NULL); - tempname = string_sprintf("%s/tmp/%lu.H%luP%lu.%s", path, tv.tv_sec, - tv.tv_usec, getpid(), primary_hostname); + tempname = string_sprintf("%s/tmp/" TIME_T_FMT ".H%luP%lu.%s", + path, tv.tv_sec, tv.tv_usec, (long unsigned) getpid(), primary_hostname); fd = Uopen(tempname, O_RDWR|O_CREAT|O_EXCL, ob->mode ? ob->mode : 0600); if (fd >= 0)