ash: expand: Ensure result is escaped in cvtnum

Upstream commit:

    Date: Fri, 1 Jun 2018 18:25:29 +0800
    expand: Ensure result is escaped in cvtnum

    The minus sign generated from arithmetic expansion is currently
    unquoted which causes anomalies when the result is used in where
    the quoting matters.

    This patch fixes it by explicitly calling memtodest on the result
    in cvtnum.

    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2020-02-21 16:30:44 +01:00
parent da2e46dff6
commit 45dd87aac0
5 changed files with 44 additions and 25 deletions

View File

@ -0,0 +1,2 @@
tempfile0.tmp tempfile9.tmp
tempfile0.tmp tempfile1.tmp tempfile9.tmp

View File

@ -0,0 +1,8 @@
>tempfile0.tmp
>tempfile1.tmp
>tempfile9.tmp
# The [...] is interpreted as: "any of the chars 0, -, and 9"
echo tempfile[0"$((-9))"].tmp
# The [...] is [0-9], interpreted as: "any digit"
echo tempfile[0$((-9))].tmp
rm tempfile?.tmp