git://git.exim.org
/
users
/
jgh
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move the regression test for CVE-2019-15846 to 1100-Basic-TLS/1100
[users/jgh/exim.git]
/
test
/
scripts
/
0000-Basic
/
0002
diff --git
a/test/scripts/0000-Basic/0002
b/test/scripts/0000-Basic/0002
index 397445273dba40aa10d829b8808ffb1f50ccc0bb..2bf8f164e3f79ba5847527493fcb67e21403ce4f 100644
(file)
--- a/
test/scripts/0000-Basic/0002
+++ b/
test/scripts/0000-Basic/0002
@@
-45,6
+45,44
@@
x\
+$11111111111111111111111111111111111
+${11111111111111111111111111111111111}
+$11111111111111111111111111111111111
+${11111111111111111111111111111111111}
+eval: ${eval:0}
+eval: ${eval:1}
+eval: ${eval:-1}
+eval: ${eval:+1}
+eval: ${eval:1+1}
+eval: ${eval:1+2*3}
+eval: ${eval:(1+2)*3}
+eval: ${eval:3/2*4}
+eval: ${eval:3*4/2}
+eval: ${eval:42}
+eval: ${eval:}
+eval: ${eval:-2}
+eval: ${eval:-2 - -3}
+eval: ${eval:-2 - (-3)}
+eval: ${eval:-2 - (-3}
+eval: ${eval:-2 - -3)}
+eval: ${eval:-2 --3}
+eval: ${eval:-2 -+3}
+eval: ${eval:-2 -+-3}
+eval: ${eval:(2*(1+1))/2 + 40K}
+eval: ${eval:077}
+eval: ${eval:08}
+eval10: ${eval10:077}
+eval10: ${eval10:08}
+eval10: ${eval10:0x1234}
+eval: ${eval:2+42%5}
+eval: ${eval:0xc&5}
+eval: ${eval:0xc & 5 }
+eval: ${eval:0x0c|5}
+eval: ${eval:0xc^5}
+eval: ${eval:0xc>>1}
+eval: ${eval:0xc >> 2}
+eval: ${eval:0xc >> 4 }
+eval: ${eval:0xc<<1}
+eval: ${eval:~255&0x1234}
+eval: ${eval:~ 255&0x1234}
+eval: ${eval: -(~255&0x1234)}
+
# List operations
filter: "${filter{a:b:c}{eq{1}{1}}}"
# List operations
filter: "${filter{a:b:c}{eq{1}{1}}}"
@@
-123,8
+161,15
@@
acl: ${reduce {1:2:3:4} {} {$value ${acl {a_ret}{$item}}}}
addrss: ${address:local-part@dom.ain}
addrss: ${address:Exim Person <local-part@dom.ain> (that's me)}
addrss: ${address:local-part@dom.ain}
addrss: ${address:Exim Person <local-part@dom.ain> (that's me)}
+addrss: ${address:Exim Person <local-part(comment)@dom.ain> (that's me)}
+addrss: ${address:Exim Person <local-part@dom.ain(comment)> (that's me)}
+addrss: ${address:Exim Person <local-part(comment)@dom.ain(comment2)> (that's me)}
+addrss: ${address:Exim Person <local-part.(comment)dot-atom@dom.ain(comment2)> (that's me)}
+addrss: ${address:Exim Person <(comment)local-part@dom.ain(comment2)> (that's me)}
domain: ${domain:local-part@dom.ain}
domain: ${domain:Exim Person <local-part@dom.ain> (that's me)}
domain: ${domain:local-part@dom.ain}
domain: ${domain:Exim Person <local-part@dom.ain> (that's me)}
+domain: ${domain:Exim Person <local-part(foo)@(bar)dom.ain> (that's me)}
+domain: ${domain:a.b.c}
addresses: ${addresses:>' 'abc@xyz, 'pqr@xyz}
addresses: ${addresses:Exim Person <local-part@dom.ain> (that's me)}
addresses: ${addresses:>' 'abc@xyz, 'pqr@xyz}
addresses: ${addresses:Exim Person <local-part@dom.ain> (that's me)}
@@
-138,40
+183,6
@@
addresses: ${addresses:>}
escape: ${escape:B7·F2ò}
excape8bit: ${escape8bit:undisturbed text\ttab\nnewline\ttab\\backslash \176tilde\177DEL\200\x81.}
escape: ${escape:B7·F2ò}
excape8bit: ${escape8bit:undisturbed text\ttab\nnewline\ttab\\backslash \176tilde\177DEL\200\x81.}
-eval: ${eval:1+1}
-eval: ${eval:1+2*3}
-eval: ${eval:(1+2)*3}
-eval: ${eval:3/2*4}
-eval: ${eval:3*4/2}
-eval: ${eval:42}
-eval: ${eval:}
-eval: ${eval:-2}
-eval: ${eval:-2 - -3}
-eval: ${eval:-2 - (-3)}
-eval: ${eval:-2 - (-3}
-eval: ${eval:-2 - -3)}
-eval: ${eval:-2 --3}
-eval: ${eval:-2 -+3}
-eval: ${eval:-2 -+-3}
-eval: ${eval:(2*(1+1))/2 + 40K}
-eval: ${eval:077}
-eval: ${eval:08}
-eval10: ${eval10:077}
-eval10: ${eval10:08}
-eval10: ${eval10:0x1234}
-eval: ${eval:2+42%5}
-eval: ${eval:0xc&5}
-eval: ${eval:0xc & 5 }
-eval: ${eval:0x0c|5}
-eval: ${eval:0xc^5}
-eval: ${eval:0xc>>1}
-eval: ${eval:0xc >> 2}
-eval: ${eval:0xc >> 4 }
-eval: ${eval:0xc<<1}
-eval: ${eval:~255&0x1234}
-eval: ${eval:~ 255&0x1234}
-eval: ${eval: -(~255&0x1234)}
-
expand: \$primary_hostname ${expand:\$primary_hostname}
hash: ${hash_3:monty} ${hash_5:monty} ${hash_4_62:monty python}
hash: ${hash_3:abc}X ${hash_3:ab}X ${hash_3:a}X ${hash_3:}X
expand: \$primary_hostname ${expand:\$primary_hostname}
hash: ${hash_3:monty} ${hash_5:monty} ${hash_4_62:monty python}
hash: ${hash_3:abc}X ${hash_3:ab}X ${hash_3:a}X ${hash_3:}X
@@
-244,6
+255,8
@@
lc/uc: ${lc:The Quick} ${uc: Brown Fox}
length: ${length_10:The quick brown fox} ${l_10:abc}
lclpt: ${local_part:local-part@dom.ain}
lclpt: ${local_part:Exim Person <local-part@dom.ain> (that's me)}
length: ${length_10:The quick brown fox} ${l_10:abc}
lclpt: ${local_part:local-part@dom.ain}
lclpt: ${local_part:Exim Person <local-part@dom.ain> (that's me)}
+lclpt: ${local_part:Exim Person <local(comment).part@dom.(comment2)ain> (that's me)}
+lclpt: ${local_part:a.b.c}
quote: ${quote:aZ09_.-Q} ${quote:ab*cd} ${quote:ab\cd"ef}
quote: ${quote:nl(\n)}
quote: ${quote:cr(\r)}
quote: ${quote:aZ09_.-Q} ${quote:ab*cd} ${quote:ab\cd"ef}
quote: ${quote:nl(\n)}
quote: ${quote:cr(\r)}
@@
-895,6
+908,8
@@
${extract json {2} {${extract json{IDs} {\{"other":"foo", "IDs": [116, 943, 234]
${extract json {2} {["red", "green", "blue", "black"]} }
${extract jsons{2} {["red", "green", "blue", "black"]} }
${extract json {2} {["red", "green", "blue", "black"]} }
${extract jsons{2} {["red", "green", "blue", "black"]} }
+<${extract jsons{5} {["red", "green", "blue", "black"]} }>
+expect: <>
${extract json {seconds} { \{"hours":0, "mins":0, "seconds":59\} }}
${extract json {seconds} {${extract json {2} { ["irrelevant", \{"hours":0, "mins":0, "seconds":59\}] }}}}
${extract json {seconds} { \{"hours":0, "mins":0, "seconds":59\} }}
${extract json {seconds} {${extract json {2} { ["irrelevant", \{"hours":0, "mins":0, "seconds":59\}] }}}}
@@
-907,6
+922,11
@@
expect: {"1":116, "2":943, "3":234}
<${extract json{nonexistent}{ \{"id": \{"a":101, "b":102\}, "IDs": \{"1":116, "2":943, "3":234\}\} }}>
expect: <>
<${extract json{nonexistent}{ \{"id": \{"a":101, "b":102\}, "IDs": \{"1":116, "2":943, "3":234\}\} }}>
expect: <>
+<${extract jsons{nonexistent}{ \{"id": \{"a":101, "b":102\}, "IDs": \{"1":116, "2":943, "3":234\}\} }}>
+expect: <>
+
+${if forany_json {[1, 2, 3]}{={$item}{1}}{yes}{no}}
+${if forany_jsons{["A", "B", "C"]}{eq{$item}{B}}{yes}{no}}
****
# Test "escape" with print_topbitchars
****
# Test "escape" with print_topbitchars
@@
-914,8
+934,9
@@
exim -be -DPTBC=print_topbitchars
escape: ${escape:B7·F2ò}
****
# Checkout expansion debugging
escape: ${escape:B7·F2ò}
****
# Checkout expansion debugging
-exim -d-all+expand -be
+exim -d-all+expand -
f sndr@dom -
be
primary_hostname: $primary_hostname
primary_hostname: $primary_hostname
+sender_address: $sender_address
match: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
match: ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
match: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
match: ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}