diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-06-26 22:55:44 +0200 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-06-26 22:55:44 +0200 |
| commit | fd33e17a2bf4c09bb12ac09a645cfd0f0f914fec (patch) | |
| tree | 45d99d8cc103dcd97086b61f8f8616f5ac14e931 /shell/ash_test | |
| parent | b768aeb164d361d1ca2c8f6c091e93442f072656 (diff) | |
| download | busybox-w32-fd33e17a2bf4c09bb12ac09a645cfd0f0f914fec.tar.gz busybox-w32-fd33e17a2bf4c09bb12ac09a645cfd0f0f914fec.tar.bz2 busybox-w32-fd33e17a2bf4c09bb12ac09a645cfd0f0f914fec.zip | |
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')
| -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 000000000..b212c246c --- /dev/null +++ b/shell/ash_test/ash-quoting/dollar_repl_slash_bash1.right | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | 192\.168\.0\.1 | ||
| 2 | 192\.168\.0\.1[ | ||
| 3 | 192\.168\.0\.1[ | ||
| 4 | 192\\.168\\.0\\.1[ | ||
| 5 | 192\.168\.0\.1[ | ||
| 6 | 192\.168\.0\.1 | ||
| 7 | 192\.168\.0\.1[ | ||
| 8 | 192\.168\.0\.1[ | ||
| 9 | 192\\.168\\.0\\.1[ | ||
| 10 | 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 000000000..3fa2f186d --- /dev/null +++ b/shell/ash_test/ash-quoting/dollar_repl_slash_bash1.tests | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | # The bug here was triggered by: | ||
| 2 | # * performin pathname expansion because we see [ | ||
| 3 | # * replace operator did not escape \ in replace string | ||
| 4 | |||
| 5 | IP=192.168.0.1 | ||
| 6 | |||
| 7 | rm -f '192.168.0.1[' | ||
| 8 | echo "${IP//./\\.}" | ||
| 9 | echo "${IP//./\\.}"'[' # bug was here | ||
| 10 | echo "${IP//./\\.}[" # bug was here | ||
| 11 | echo "${IP//./\\\\.}[" # bug was here | ||
| 12 | echo "192\.168\.0\.1[" | ||
| 13 | |||
| 14 | echo >'192.168.0.1[' | ||
| 15 | echo "${IP//./\\.}" | ||
| 16 | echo "${IP//./\\.}"'[' # bug was here | ||
| 17 | echo "${IP//./\\.}[" # bug was here | ||
| 18 | echo "${IP//./\\\\.}[" # bug was here | ||
| 19 | echo "192\.168\.0\.1[" | ||
| 20 | |||
| 21 | rm -f '192.168.0.1[' | ||
