hush: never glob result of dquoted "${v:+/bin/c*}"
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
4c3c8a1a61
commit
f36caa4071
7
shell/ash_test/ash-glob/glob_altvalue1.right
Normal file
7
shell/ash_test/ash-glob/glob_altvalue1.right
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
1u: glob_altvalue1.tests
|
||||||
|
2u: glob_altvalue1.t*
|
||||||
|
3u: glob_altvalue1.t*
|
||||||
|
4u: glob_altvalue1.t*
|
||||||
|
1q: glob_altvalue1.t*
|
||||||
|
2q: 'glob_altvalue1.t*'
|
||||||
|
3q: glob_altvalue1.t*
|
13
shell/ash_test/ash-glob/glob_altvalue1.tests
Executable file
13
shell/ash_test/ash-glob/glob_altvalue1.tests
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
x=x
|
||||||
|
|
||||||
|
echo 1u: ${x:+glob_altvalue1.t*}
|
||||||
|
echo 2u: ${x:+'glob_altvalue1.t*'}
|
||||||
|
echo 3u: ${x:+"glob_altvalue1.t*"}
|
||||||
|
echo 4u: ${x:+glob_altvalue1.t\*}
|
||||||
|
##echo 5u: ${x:+"glob_altvalue1.t\*"}
|
||||||
|
|
||||||
|
echo 1q: "${x:+glob_altvalue1.t*}"
|
||||||
|
echo 2q: "${x:+'glob_altvalue1.t*'}"
|
||||||
|
echo 3q: "${x:+"glob_altvalue1.t*"}"
|
||||||
|
##echo 4q: "${x:+glob_altvalue1.t\*}"
|
||||||
|
##echo 5q: "${x:+"glob_altvalue1.t\*"}"
|
14
shell/hush.c
14
shell/hush.c
@ -5994,7 +5994,19 @@ static int encode_then_append_var_plusminus(o_string *output, int n,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
o_addQchr(&dest, ch);
|
if (dquoted) {
|
||||||
|
/* Always glob-protect if in dquotes:
|
||||||
|
* x=x; echo "${x:+/bin/c*}" - prints: /bin/c*
|
||||||
|
* x=x; echo "${x:+"/bin/c*"}" - prints: /bin/c*
|
||||||
|
*/
|
||||||
|
o_addqchr(&dest, ch);
|
||||||
|
} else {
|
||||||
|
/* Glob-protect only if char is quoted:
|
||||||
|
* x=x; echo ${x:+/bin/c*} - prints many filenames
|
||||||
|
* x=x; echo ${x:+"/bin/c*"} - prints: /bin/c*
|
||||||
|
*/
|
||||||
|
o_addQchr(&dest, ch);
|
||||||
|
}
|
||||||
} /* for (;;) */
|
} /* for (;;) */
|
||||||
|
|
||||||
if (dest.data) {
|
if (dest.data) {
|
||||||
|
7
shell/hush_test/hush-glob/glob_altvalue1.right
Normal file
7
shell/hush_test/hush-glob/glob_altvalue1.right
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
1u: glob_altvalue1.tests
|
||||||
|
2u: glob_altvalue1.t*
|
||||||
|
3u: glob_altvalue1.t*
|
||||||
|
4u: glob_altvalue1.t*
|
||||||
|
1q: glob_altvalue1.t*
|
||||||
|
2q: 'glob_altvalue1.t*'
|
||||||
|
3q: glob_altvalue1.t*
|
13
shell/hush_test/hush-glob/glob_altvalue1.tests
Executable file
13
shell/hush_test/hush-glob/glob_altvalue1.tests
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
x=x
|
||||||
|
|
||||||
|
echo 1u: ${x:+glob_altvalue1.t*}
|
||||||
|
echo 2u: ${x:+'glob_altvalue1.t*'}
|
||||||
|
echo 3u: ${x:+"glob_altvalue1.t*"}
|
||||||
|
echo 4u: ${x:+glob_altvalue1.t\*}
|
||||||
|
##echo 5u: ${x:+"glob_altvalue1.t\*"}
|
||||||
|
|
||||||
|
echo 1q: "${x:+glob_altvalue1.t*}"
|
||||||
|
echo 2q: "${x:+'glob_altvalue1.t*'}"
|
||||||
|
echo 3q: "${x:+"glob_altvalue1.t*"}"
|
||||||
|
##echo 4q: "${x:+glob_altvalue1.t\*}"
|
||||||
|
##echo 5q: "${x:+"glob_altvalue1.t\*"}"
|
Loading…
Reference in New Issue
Block a user