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>
This commit is contained in:
10
shell/ash_test/ash-quoting/dollar_repl_slash_bash1.right
Normal file
10
shell/ash_test/ash-quoting/dollar_repl_slash_bash1.right
Normal file
@ -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[
|
21
shell/ash_test/ash-quoting/dollar_repl_slash_bash1.tests
Executable file
21
shell/ash_test/ash-quoting/dollar_repl_slash_bash1.tests
Executable file
@ -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['
|
Reference in New Issue
Block a user