diff options
author | Denys Vlasenko | 2010-06-26 22:55:44 +0200 |
---|---|---|
committer | Denys Vlasenko | 2010-06-26 22:55:44 +0200 |
commit | fd33e17a2bf4c09bb12ac09a645cfd0f0f914fec (patch) | |
tree | 45d99d8cc103dcd97086b61f8f8616f5ac14e931 /shell/ash_test/ash-quoting | |
parent | b768aeb164d361d1ca2c8f6c091e93442f072656 (diff) | |
download | busybox-fd33e17a2bf4c09bb12ac09a645cfd0f0f914fec.zip busybox-fd33e17a2bf4c09bb12ac09a645cfd0f0f914fec.tar.gz |
ash: fix obscure case of replacing + globbing + backslashes
function old new delta
subevalvar 1152 1178 +26
readtoken1 3267 3275 +8
redirect 1284 1286 +2
expandarg 957 958 +1
expdir 4 - -4
evalcommand 1219 1209 -10
expmeta 481 469 -12
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 4/2 up/down: 37/-26) Total: 11 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/ash_test/ash-quoting')
-rw-r--r-- | shell/ash_test/ash-quoting/dollar_repl_slash_bash1.right | 10 | ||||
-rwxr-xr-x | shell/ash_test/ash-quoting/dollar_repl_slash_bash1.tests | 21 |
2 files changed, 31 insertions, 0 deletions
diff --git a/shell/ash_test/ash-quoting/dollar_repl_slash_bash1.right b/shell/ash_test/ash-quoting/dollar_repl_slash_bash1.right new file mode 100644 index 0000000..b212c24 --- /dev/null +++ b/shell/ash_test/ash-quoting/dollar_repl_slash_bash1.right @@ -0,0 +1,10 @@ +192\.168\.0\.1 +192\.168\.0\.1[ +192\.168\.0\.1[ +192\\.168\\.0\\.1[ +192\.168\.0\.1[ +192\.168\.0\.1 +192\.168\.0\.1[ +192\.168\.0\.1[ +192\\.168\\.0\\.1[ +192\.168\.0\.1[ diff --git a/shell/ash_test/ash-quoting/dollar_repl_slash_bash1.tests b/shell/ash_test/ash-quoting/dollar_repl_slash_bash1.tests new file mode 100755 index 0000000..3fa2f18 --- /dev/null +++ b/shell/ash_test/ash-quoting/dollar_repl_slash_bash1.tests @@ -0,0 +1,21 @@ +# The bug here was triggered by: +# * performin pathname expansion because we see [ +# * replace operator did not escape \ in replace string + +IP=192.168.0.1 + +rm -f '192.168.0.1[' +echo "${IP//./\\.}" +echo "${IP//./\\.}"'[' # bug was here +echo "${IP//./\\.}[" # bug was here +echo "${IP//./\\\\.}[" # bug was here +echo "192\.168\.0\.1[" + +echo >'192.168.0.1[' +echo "${IP//./\\.}" +echo "${IP//./\\.}"'[' # bug was here +echo "${IP//./\\.}[" # bug was here +echo "${IP//./\\\\.}[" # bug was here +echo "192\.168\.0\.1[" + +rm -f '192.168.0.1[' |