projects
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Intercept chown()/fchown() failure and emit a pointer to the bugreport. Closes 2391
[exim.git]
/
src
/
src
/
deliver.c
diff --git
a/src/src/deliver.c
b/src/src/deliver.c
index 071187942629cdacb081480a2edc24a8fa2b2e7a..696effdeedfea0a6c21d6ca756b25fe76f5858f4 100644
(file)
--- a/
src/src/deliver.c
+++ b/
src/src/deliver.c
@@
-347,7
+347,7
@@
for (int i = 2; i > 0; i--)
#ifndef O_CLOEXEC
(void)fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
#endif
#ifndef O_CLOEXEC
(void)fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
#endif
- if (
fchown(fd, exim_uid, exim_gid
) < 0)
+ if (
exim_fchown(fd, exim_uid, exim_gid, filename
) < 0)
{
*error = US"chown";
return -1;
{
*error = US"chown";
return -1;
@@
-367,7
+367,7
@@
for (int i = 2; i > 0; i--)
MSGLOG_DIRECTORY_MODE, TRUE);
}
MSGLOG_DIRECTORY_MODE, TRUE);
}
-*error = US"create";
+*error = US"create
or open
";
return -1;
}
return -1;
}
@@
-7072,7
+7072,7
@@
if (addr_local || addr_remote)
that the mode is correct - the group setting doesn't always seem to get
set automatically. */
that the mode is correct - the group setting doesn't always seem to get
set automatically. */
- if(
fchown(journal_fd, exim_uid, exim_gid
)
+ if(
exim_fchown(journal_fd, exim_uid, exim_gid, fname
)
|| fchmod(journal_fd, SPOOL_MODE)
#ifndef O_CLOEXEC
|| fcntl(journal_fd, F_SETFD, fcntl(journal_fd, F_GETFD) | FD_CLOEXEC)
|| fchmod(journal_fd, SPOOL_MODE)
#ifndef O_CLOEXEC
|| fcntl(journal_fd, F_SETFD, fcntl(journal_fd, F_GETFD) | FD_CLOEXEC)
@@
-8507,11
+8507,6
@@
if (!regex_AUTH) regex_AUTH =
#ifdef SUPPORT_TLS
if (!regex_STARTTLS) regex_STARTTLS =
regex_must_compile(US"\\n250[\\s\\-]STARTTLS(\\s|\\n|$)", FALSE, TRUE);
#ifdef SUPPORT_TLS
if (!regex_STARTTLS) regex_STARTTLS =
regex_must_compile(US"\\n250[\\s\\-]STARTTLS(\\s|\\n|$)", FALSE, TRUE);
-
-# ifdef EXPERIMENTAL_REQUIRETLS
-if (!regex_REQUIRETLS) regex_REQUIRETLS =
- regex_must_compile(US"\\n250[\\s\\-]REQUIRETLS(\\s|\\n|$)", FALSE, TRUE);
-# endif
#endif
if (!regex_CHUNKING) regex_CHUNKING =
#endif
if (!regex_CHUNKING) regex_CHUNKING =