git://git.exim.org
/
users
/
jgh
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Restrict lifetime of $router_name and $transport_name. Bug 308.
[users/jgh/exim.git]
/
src
/
src
/
deliver.c
diff --git
a/src/src/deliver.c
b/src/src/deliver.c
index 55bfa0dd0839fe2b539623d026985ab280c03ae2..e2605ab2cf9453783bc1e50c3b26f5023d8f1126 100644
(file)
--- a/
src/src/deliver.c
+++ b/
src/src/deliver.c
@@
-1871,6
+1871,9
@@
if ((pid = fork()) == 0)
set_process_info("delivering %s to %s using %s", message_id,
addr->local_part, addr->transport->name);
set_process_info("delivering %s to %s using %s", message_id,
addr->local_part, addr->transport->name);
+ /* Setting this global in the subprocess means we need never clear it */
+ transport_name = addr->transport->name;
+
/* If a transport filter has been specified, set up its argument list.
Any errors will get put into the address, and FALSE yielded. */
/* If a transport filter has been specified, set up its argument list.
Any errors will get put into the address, and FALSE yielded. */
@@
-2190,8
+2193,6
@@
while (addr_local != NULL)
if (previously_transported(addr, FALSE)) continue;
if (previously_transported(addr, FALSE)) continue;
- transport_name = tp->name;
-
/* There are weird cases where logging is disabled */
disable_logging = tp->disable_logging;
/* There are weird cases where logging is disabled */
disable_logging = tp->disable_logging;
@@
-3532,8
+3533,6
@@
for (delivery_count = 0; addr_remote != NULL; delivery_count++)
if (previously_transported(addr, FALSE)) continue;
if (previously_transported(addr, FALSE)) continue;
- transport_name = tp->name;
-
/* Force failure if the message is too big. */
if (tp->message_size_limit != NULL)
/* Force failure if the message is too big. */
if (tp->message_size_limit != NULL)
@@
-3859,8
+3858,10
@@
for (delivery_count = 0; addr_remote != NULL; delivery_count++)
int fd = pfd[pipe_write];
host_item *h;
int fd = pfd[pipe_write];
host_item *h;
- /* There are weird circumstances in which logging is disabled */
+ /* Setting this global in the subprocess means we need never clear it */
+ transport_name = tp->name;
+ /* There are weird circumstances in which logging is disabled */
disable_logging = tp->disable_logging;
/* Show pids on debug output if parallelism possible */
disable_logging = tp->disable_logging;
/* Show pids on debug output if parallelism possible */