summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2020-03-18 11:36:59 +0000
committerJeremy Harris <jgh146exb@wizmail.org>2020-03-18 11:42:14 +0000
commit96c8151125ceb98ed52c0089f6401e6ba05bb41e (patch)
tree2f07bfff86deda3aa612aceadaedf650a08d2745
parent8e9fdd6369f0a7a81f0ca195e24edd372f7ca3ef (diff)
downloadexim4-96c8151125ceb98ed52c0089f6401e6ba05bb41e.tar.gz
tidying
-rw-r--r--src/src/child.c16
-rw-r--r--src/src/daemon.c4
-rw-r--r--src/src/exim.c8
-rw-r--r--src/src/log.c6
-rw-r--r--src/src/transport.c11
-rw-r--r--src/src/transports/smtp.c4
-rw-r--r--test/stderr/03932
7 files changed, 27 insertions, 24 deletions
diff --git a/src/src/child.c b/src/src/child.c
index f6d44e1b1..13d177c19 100644
--- a/src/src/child.c
+++ b/src/src/child.c
@@ -240,7 +240,7 @@ if (pid == 0)
if (debug_fd > 0) force_fd(debug_fd, 2);
if (f.running_in_test_harness && !queue_only)
{
- if (sender_authentication != NULL)
+ if (sender_authentication)
child_exec_exim(CEE_EXEC_EXIT, FALSE, NULL, FALSE, 9,
US "-odi", US"-t", US"-oem", US"-oi", US"-f", sender, US"-oMas",
sender_authentication, message_id_option);
@@ -252,7 +252,7 @@ if (pid == 0)
}
else /* Not test harness */
{
- if (sender_authentication != NULL)
+ if (sender_authentication)
child_exec_exim(CEE_EXEC_EXIT, FALSE, NULL, FALSE, 8,
US"-t", US"-oem", US"-oi", US"-f", sender, US"-oMas",
sender_authentication, message_id_option);
@@ -341,7 +341,7 @@ that the child process can be waited for. We sometimes get here with it set
otherwise. Save the old state for resetting on the wait. */
oldsignal = signal(SIGCHLD, SIG_DFL);
-pid = exim_fork(US"queryprogram"); /* queryprogram tpt is sole caller */
+pid = exim_fork(US"child-open");
/* Handle the child process. First, set the required environment. We must do
this before messing with the pipes, in order to be able to write debugging
@@ -352,14 +352,14 @@ if (pid == 0)
signal(SIGUSR1, SIG_IGN);
signal(SIGPIPE, SIG_DFL);
- if (newgid != NULL && setgid(*newgid) < 0)
+ if (newgid && setgid(*newgid) < 0)
{
DEBUG(D_any) debug_printf("failed to set gid=%ld in subprocess: %s\n",
(long int)(*newgid), strerror(errno));
goto CHILD_FAILED;
}
- if (newuid != NULL && setuid(*newuid) < 0)
+ if (newuid && setuid(*newuid) < 0)
{
DEBUG(D_any) debug_printf("failed to set uid=%ld in subprocess: %s\n",
(long int)(*newuid), strerror(errno));
@@ -368,7 +368,7 @@ if (pid == 0)
(void)umask(newumask);
- if (wd != NULL && Uchdir(wd) < 0)
+ if (wd && Uchdir(wd) < 0)
{
DEBUG(D_any) debug_printf("failed to chdir to %s: %s\n", wd,
strerror(errno));
@@ -398,8 +398,8 @@ if (pid == 0)
/* Now do the exec */
- if (envp == NULL) execv(CS argv[0], (char *const *)argv);
- else execve(CS argv[0], (char *const *)argv, (char *const *)envp);
+ if (envp) execve(CS argv[0], (char *const *)argv, (char *const *)envp);
+ else execv(CS argv[0], (char *const *)argv);
/* Failed to execv. Signal this failure using EX_EXECFAILED. We are
losing the actual errno we got back, because there is no way to return
diff --git a/src/src/daemon.c b/src/src/daemon.c
index a1ef1f930..81fb69447 100644
--- a/src/src/daemon.c
+++ b/src/src/daemon.c
@@ -2127,8 +2127,8 @@ for (;;)
have enough queue runners on the go. If we are not running as root, a
re-exec is required. */
- if (queue_interval > 0 &&
- (local_queue_run_max <= 0 || queue_run_count < local_queue_run_max))
+ if ( queue_interval > 0
+ && (local_queue_run_max <= 0 || queue_run_count < local_queue_run_max))
{
if ((pid = exim_fork(US"queue runner")) == 0)
{
diff --git a/src/src/exim.c b/src/src/exim.c
index 6bde8fd96..f7f8b251a 100644
--- a/src/src/exim.c
+++ b/src/src/exim.c
@@ -342,11 +342,9 @@ Returns: nothing
void
millisleep(int msec)
{
-struct itimerval itval;
-itval.it_interval.tv_sec = 0;
-itval.it_interval.tv_usec = 0;
-itval.it_value.tv_sec = msec/1000;
-itval.it_value.tv_usec = (msec % 1000) * 1000;
+struct itimerval itval = {.it_interval = {.tv_sec = 0, .tv_usec = 0},
+ .it_value = {.tv_sec = msec/1000,
+ .tv_usec = (msec % 1000) * 1000}};
milliwait(&itval);
}
diff --git a/src/src/log.c b/src/src/log.c
index e80c17757..89c5dc003 100644
--- a/src/src/log.c
+++ b/src/src/log.c
@@ -510,7 +510,7 @@ non-setuid binary with log_arguments set, called in certain ways.) Rather than
just bombing out, force the log to stderr and carry on if stderr is available.
*/
-if (euid != root_uid && euid != exim_uid && log_stderr != NULL)
+if (euid != root_uid && euid != exim_uid && log_stderr)
{
*fd = fileno(log_stderr);
return;
@@ -519,7 +519,9 @@ if (euid != root_uid && euid != exim_uid && log_stderr != NULL)
/* Otherwise this is a disaster. This call is deliberately ONLY to the panic
log. If possible, save a copy of the original line that was being logged. If we
are recursing (can't open the panic log either), the pointer will already be
-set. */
+set. Also, when we had to use a subprocess for the create we didn't retrieve
+errno from it, so get the error from the open attempt above (which is often
+meaningful enough, so leave it). */
if (!panic_save_buffer)
if ((panic_save_buffer = US malloc(LOG_BUFFER_SIZE)))
diff --git a/src/src/transport.c b/src/src/transport.c
index d92ad4c37..142fede07 100644
--- a/src/src/transport.c
+++ b/src/src/transport.c
@@ -1188,7 +1188,8 @@ transport_write_message(transport_ctx * tctx, int size_limit)
{
BOOL last_filter_was_NL = TRUE;
BOOL save_spool_file_wireformat = f.spool_file_wireformat;
-int rc, len, yield, fd_read, fd_write, save_errno;
+BOOL yield;
+int rc, len, fd_read, fd_write, save_errno;
int pfd[2] = {-1, -1};
pid_t filter_pid, write_pid;
@@ -1248,7 +1249,7 @@ via a(nother) pipe. While writing to the filter, we do not do the CRLF,
smtp dots, or check string processing. */
if (pipe(pfd) != 0) goto TIDY_UP; /* errno set */
-if ((write_pid = exim_fork(US"transport filter")) == 0)
+if ((write_pid = exim_fork(US"transport filter writer")) == 0)
{
BOOL rc;
(void)close(fd_read);
@@ -1272,7 +1273,7 @@ if ((write_pid = exim_fork(US"transport filter")) == 0)
!= sizeof(struct timeval)
)
rc = FALSE; /* compiler quietening */
- exim_underbar_exit(0, US"tpt-filter");
+ exim_underbar_exit(0, US"tpt-filter writer");
}
save_errno = errno;
@@ -1320,6 +1321,7 @@ for (;;)
ALARM_CLR(0);
if (sigalrm_seen)
{
+ DEBUG(D_transport) debug_printf("timed out reading from filter\n");
errno = ETIMEDOUT;
f.transport_filter_timed_out = TRUE;
goto TIDY_UP;
@@ -1438,7 +1440,7 @@ DEBUG(D_transport)
{
debug_printf("end of filtering transport writing: yield=%d\n", yield);
if (!yield)
- debug_printf("errno=%d more_errno=%d\n", errno, tctx->addr->more_errno);
+ debug_printf(" errno=%d more_errno=%d\n", errno, tctx->addr->more_errno);
}
return yield;
@@ -1731,6 +1733,7 @@ while (1)
}
/* first thing remove current message id if it exists */
+ /*XXX but what if it has un-sent addrs? */
for (i = 0; i < msgq_count; ++i)
if (Ustrcmp(msgq[i].message_id, message_id) == 0)
diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c
index 459110b80..7be9e8e66 100644
--- a/src/src/transports/smtp.c
+++ b/src/src/transports/smtp.c
@@ -1685,7 +1685,7 @@ current_local_identity =
smtp_local_identity(s_compare->current_sender_address, s_compare->tblock);
if (!(new_sender_address = deliver_get_sender_address(message_id)))
- return 0;
+ return FALSE;
message_local_identity =
smtp_local_identity(new_sender_address, s_compare->tblock);
@@ -3459,7 +3459,7 @@ if ((rc = smtp_setup_conn(sx, suppress_tls)) != OK)
}
/* If there is a filter command specified for this transport, we can now
-set it up. This cannot be done until the identify of the host is known. */
+set it up. This cannot be done until the identity of the host is known. */
if (tblock->filter_command)
{
diff --git a/test/stderr/0393 b/test/stderr/0393
index 564007828..79e68be12 100644
--- a/test/stderr/0393
+++ b/test/stderr/0393
@@ -31,7 +31,7 @@ writing data block fd=dddd size=sss timeout=0
process pppp running as transport filter: fd_write=dddd fd_read=dddd
cannot use sendfile for body: spoolfile not wireformat
writing data block fd=dddd size=sss timeout=0
->>>>>>>>>>>>>>>> Exim pid=pppp (tpt-filter) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (tpt-filter writer) terminating with rc=0 >>>>>>>>>>>>>>>>
process pppp writing to transport filter
copying from the filter
waiting for filter process