X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/3c90bbcdc7cf73298156f7bcd5f5e750e7814e72..d6ffd8ef9ebcb2dc913c75ee255459e8ff4fb4da:/src/src/expand.c diff --git a/src/src/expand.c b/src/src/expand.c index 7b8462eef..9bb30de4f 100644 --- a/src/src/expand.c +++ b/src/src/expand.c @@ -4916,7 +4916,7 @@ while (*s) { expand_string_message = string_sprintf("lookup of \"%s\" gave DEFER: %s", - string_printing2(key, FALSE), search_error_message); + string_printing2(key, SP_TAB), search_error_message); goto EXPAND_FAILED; } if (expand_setup > 0) expand_nmax = expand_setup; @@ -5330,11 +5330,14 @@ while (*s) while ((item = string_nextinlist(&list, &sep, NULL, 0))) g = string_append_listele(g, ',', item); - /* possibly plus an EOL string */ + /* possibly plus an EOL string. Process with escapes, to protect + from list-processing. The only current user of eol= in search + options is the readsock expansion. */ + if (sub_arg[3] && *sub_arg[3]) g = string_append_listele(g, ',', - string_sprintf("eol=%s", sub_arg[3])); - + string_sprintf("eol=%s", + string_printing2(sub_arg[3], SP_TAB|SP_SPACE))); } /* Gat a (possibly cached) handle for the connection */