From fd33e17a2bf4c09bb12ac09a645cfd0f0f914fec Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sat, 26 Jun 2010 22:55:44 +0200 Subject: 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 --- .../ash-quoting/dollar_repl_slash_bash1.right | 10 ++++++++++ .../ash-quoting/dollar_repl_slash_bash1.tests | 21 +++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 shell/ash_test/ash-quoting/dollar_repl_slash_bash1.right create mode 100755 shell/ash_test/ash-quoting/dollar_repl_slash_bash1.tests (limited to 'shell/ash_test') 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[' -- cgit v1.1