git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make {bounce,warn}_message_file expanded. Bug 2522
[exim.git]
/
src
/
src
/
route.c
diff --git
a/src/src/route.c
b/src/src/route.c
index 6226b0685c16b509391b577a7f32a029b428c076..cee2f74c1ba47130d6dad13210d0dacc4c2f1616 100644
(file)
--- a/
src/src/route.c
+++ b/
src/src/route.c
@@
-3,6
+3,7
@@
*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
+/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions concerned with routing, and the list of generic router options. */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions concerned with routing, and the list of generic router options. */
@@
-759,9
+760,9
@@
while ((check = string_nextinlist(&listptr, &sep, buffer, sizeof(buffer))))
exim_setugid(uid, gid, TRUE,
string_sprintf("require_files check, file=%s", ss));
if (route_check_access(ss, uid, gid, 4))
exim_setugid(uid, gid, TRUE,
string_sprintf("require_files check, file=%s", ss));
if (route_check_access(ss, uid, gid, 4))
- exim_underbar_exit(
0, US"route-check-access"
);
+ exim_underbar_exit(
EXIT_SUCCESS
);
DEBUG(D_route) debug_printf("route_check_access() failed\n");
DEBUG(D_route) debug_printf("route_check_access() failed\n");
- exim_underbar_exit(
1, US"route-check-access"
);
+ exim_underbar_exit(
EXIT_FAILURE
);
}
/* In the parent, wait for the child to finish */
}
/* In the parent, wait for the child to finish */
@@
-958,7
+959,8
@@
if (r->check_local_user)
r->name, addr->local_part);
return SKIP;
}
r->name, addr->local_part);
return SKIP;
}
- deliver_localpart_verified = string_copy(US (*pw)->pw_name);
+ addr->local_part_verified =
+ deliver_localpart_verified = string_copy(US (*pw)->pw_name);
deliver_home = string_copy(US (*pw)->pw_dir);
local_user_gid = (*pw)->pw_gid;
local_user_uid = (*pw)->pw_uid;
deliver_home = string_copy(US (*pw)->pw_dir);
local_user_gid = (*pw)->pw_gid;
local_user_uid = (*pw)->pw_uid;
@@
-972,22
+974,19
@@
confusing. */
if (r->router_home_directory)
{
if (r->router_home_directory)
{
- uschar *router_home = expand_string(r->router_home_directory);
- if (!router_home)
- {
- if (!f.expand_string_forcedfail)
- {
- *perror = string_sprintf("failed to expand \"%s\" for "
- "router_home_directory: %s", r->router_home_directory,
- expand_string_message);
- return DEFER;
- }
- }
- else
+ uschar * router_home = expand_string(r->router_home_directory);
+ if (router_home)
{
setflag(addr, af_home_expanded); /* Note set from router_home_directory */
deliver_home = router_home;
}
{
setflag(addr, af_home_expanded); /* Note set from router_home_directory */
deliver_home = router_home;
}
+ else if (!f.expand_string_forcedfail)
+ {
+ *perror = string_sprintf("failed to expand \"%s\" for "
+ "router_home_directory: %s", r->router_home_directory,
+ expand_string_message);
+ return DEFER;
+ }
}
/* Skip if the sender condition is not met. We leave this one till after the
}
/* Skip if the sender condition is not met. We leave this one till after the
@@
-1695,7
+1694,6
@@
for (r = addr->start_router ? addr->start_router : routers; r; r = nextr)
the local part sorted. */
router_name = r->name;
the local part sorted. */
router_name = r->name;
- deliver_localpart_verified = NULL;
deliver_set_expansions(addr);
/* For convenience, the pre-router checks are in a separate function, which
deliver_set_expansions(addr);
/* For convenience, the pre-router checks are in a separate function, which