diff options
author | Jeremy Harris <jgh146exb@wizmail.org> | 2018-06-06 10:41:51 +0100 |
---|---|---|
committer | Jeremy Harris <jgh146exb@wizmail.org> | 2018-06-06 10:43:18 +0100 |
commit | 675ae646c0506f6740bb8afa28c8c4892dabbdaf (patch) | |
tree | 0aae555796a02bf7eb82301ab884e9018ff855f6 | |
parent | 1613fd68b5931757016c3c25fdc3b0f37827e7f1 (diff) |
Fix logging of cmdline args when starting in an unlinked cwd. Bug 2274
-rw-r--r-- | src/src/exim.c | 17 |
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++; |