summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2021-11-27 21:23:23 +0000
committerJeremy Harris <jgh146exb@wizmail.org>2021-11-28 18:08:51 +0000
commite32d968698fce345208731c148d847c664b060a8 (patch)
tree704cef9bb6f1c8373ca6a54179a00f480b61d7e2
parentff7829398d74e67f1c1f40339a772fd76708e5ac (diff)
More care with transport process results
-rw-r--r--src/src/deliver.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/src/deliver.c b/src/src/deliver.c
index 8aad811c6..1bc0a62e7 100644
--- a/src/src/deliver.c
+++ b/src/src/deliver.c
@@ -2413,13 +2413,13 @@ if ((pid = exim_fork(US"delivery-local")) == 0)
uschar *s;
int ret;
- if( (ret = write(pfd[pipe_write], &addr2->transport_return, sizeof(int))) != sizeof(int)
+ if( (i = addr2->transport_return, (ret = write(pfd[pipe_write], &i, sizeof(int))) != sizeof(int))
|| (ret = write(pfd[pipe_write], &transport_count, sizeof(transport_count))) != sizeof(transport_count)
|| (ret = write(pfd[pipe_write], &addr2->flags, sizeof(addr2->flags))) != sizeof(addr2->flags)
|| (ret = write(pfd[pipe_write], &addr2->basic_errno, sizeof(int))) != sizeof(int)
|| (ret = write(pfd[pipe_write], &addr2->more_errno, sizeof(int))) != sizeof(int)
|| (ret = write(pfd[pipe_write], &addr2->delivery_time, sizeof(struct timeval))) != sizeof(struct timeval)
- || (ret = write(pfd[pipe_write], &addr2->special_action, sizeof(int))) != sizeof(int)
+ || (i = addr2->special_action, (ret = write(pfd[pipe_write], &i, sizeof(int))) != sizeof(int))
|| (ret = write(pfd[pipe_write], &addr2->transport,
sizeof(transport_instance *))) != sizeof(transport_instance *)
@@ -2487,7 +2487,7 @@ for (addr2 = addr; addr2; addr2 = addr2->next)
len = read(pfd[pipe_read], &addr2->basic_errno, sizeof(int));
len = read(pfd[pipe_read], &addr2->more_errno, sizeof(int));
len = read(pfd[pipe_read], &addr2->delivery_time, sizeof(struct timeval));
- len = read(pfd[pipe_read], &addr2->special_action, sizeof(int));
+ len = read(pfd[pipe_read], &i, sizeof(int)); addr2->special_action = i;
len = read(pfd[pipe_read], &addr2->transport,
sizeof(transport_instance *));