summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2018-06-06 10:41:51 +0100
committerJeremy Harris <jgh146exb@wizmail.org>2018-06-06 10:43:18 +0100
commit675ae646c0506f6740bb8afa28c8c4892dabbdaf (patch)
tree0aae555796a02bf7eb82301ab884e9018ff855f6
parent1613fd68b5931757016c3c25fdc3b0f37827e7f1 (diff)
Fix logging of cmdline args when starting in an unlinked cwd. Bug 2274
-rw-r--r--src/src/exim.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/src/exim.c b/src/src/exim.c
index 810550dd5..9f6efaf06 100644
--- a/src/src/exim.c
+++ b/src/src/exim.c
@@ -4083,18 +4083,23 @@ a debugging feature for finding out what arguments certain MUAs actually use.
Don't attempt it if logging is disabled, or if listing variables or if
verifying/testing addresses or expansions. */
-if (((debug_selector & D_any) != 0 || LOGGING(arguments))
+if ( (debug_selector & D_any || LOGGING(arguments))
&& really_exim && !list_options && !checking)
{
int i;
uschar *p = big_buffer;
Ustrcpy(p, "cwd= (failed)");
- Ustrncpy(p + 4, initial_cwd, big_buffer_size-5);
- p += 4 + Ustrlen(initial_cwd);
- /* in case p is near the end and we don't provide enough space for
- * string_format to be willing to write. */
- *p = '\0';
+ if (!initial_cwd)
+ p += 13;
+ else
+ {
+ Ustrncpy(p + 4, initial_cwd, big_buffer_size-5);
+ p += 4 + Ustrlen(initial_cwd);
+ /* in case p is near the end and we don't provide enough space for
+ * string_format to be willing to write. */
+ *p = '\0';
+ }
(void)string_format(p, big_buffer_size - (p - big_buffer), " %d args:", argc);
while (*p) p++;