X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/8280aa0c334a7ce06c55df35d9da7a99f79c3568..0d2e392e281e96d9f9f2f3dd438affe3f2563c57:/src/src/expand.c diff --git a/src/src/expand.c b/src/src/expand.c index cec6efd54..fe5384ab8 100644 --- a/src/src/expand.c +++ b/src/src/expand.c @@ -213,6 +213,7 @@ static uschar *op_table_main[] = { US"base62d", US"base64", US"base64d", + US"bless", US"domain", US"escape", US"escape8bit", @@ -260,6 +261,7 @@ enum { EOP_BASE62D, EOP_BASE64, EOP_BASE64D, + EOP_BLESS, EOP_DOMAIN, EOP_ESCAPE, EOP_ESCAPE8BIT, @@ -7059,6 +7061,20 @@ while (*s != 0) continue; } + case EOP_BLESS: + /* This is purely for the convenience of the test harness. Do not enable + it otherwise as it defeats the taint-checking security. */ + + if (f.running_in_test_harness) + yield = string_cat(yield, is_tainted(sub) + ? string_copy_taint(sub, FALSE) : sub); + else + { + DEBUG(D_expand) debug_printf_indent("bless operator not supported\n"); + yield = string_cat(yield, sub); + } + continue; + case EOP_EXPAND: { uschar *expanded = expand_string_internal(sub, FALSE, NULL, skipping, TRUE, &resetok);