← Back to team overview

touch-packages team mailing list archive

[Bug 1378625] [NEW] Failure of nested substring processing inside double-quotes

 

Public bug reported:

lsb_release -rd:
Description:    Ubuntu 14.04.1 LTS
Release:        14.04

apt-cache policy dash
dash:
  Installed: 0.5.7-4ubuntu1
  Candidate: 0.5.7-4ubuntu1
  Version table:
 *** 0.5.7-4ubuntu1 0
        500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
        100 /var/lib/dpkg/status

FYI, I reported the bug below on the dash mailing list and got this
response from Herbert Xu:

> This is already fixed in the current git tree, by the commit:
>
> commit a7c21a6f4cb42d967854cae954efd4ee66bdea9c
> Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
> Date:   Fri Aug 23 20:04:12 2013 +1000
>
>    [EXPAND] Propagate EXP_QPAT in subevalvar

I checked dash_0.5.8-1_amd64.deb from Debian experimental and this bug
seems to be fixed there as well (but still broken in Debian sid, where
the current version is dash_0.5.7-4_amd64.deb).

----------
Hi all.  I recently found a bug in dash's handling of substring
processing, when the variable is contained within quotes.

In bash, this works:

  bash$ echo $PWD
  /home/psmith

  bash$ echo ${PWD%${PWD##*/}}.
  /home/.

  bash$ echo "${PWD%${PWD##*/}}."
  /home/.

which is what I expect.  However, in dash we get:

  dash$ echo $PWD
  /home/psmith

  dash$ echo ${PWD%${PWD##*/}}.
  /home/.

  dash$ echo "${PWD%${PWD##*/}}."
  .

Whoops!  Inside double-quotes dash is mishandling the nested string
substitution.  If I break it up into two steps it works OK, regardless
of whether or not it's quoted.

** Affects: dash (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to dash in Ubuntu.
https://bugs.launchpad.net/bugs/1378625

Title:
  Failure of nested substring processing inside double-quotes

Status in “dash” package in Ubuntu:
  New

Bug description:
  lsb_release -rd:
  Description:    Ubuntu 14.04.1 LTS
  Release:        14.04

  apt-cache policy dash
  dash:
    Installed: 0.5.7-4ubuntu1
    Candidate: 0.5.7-4ubuntu1
    Version table:
   *** 0.5.7-4ubuntu1 0
          500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
          100 /var/lib/dpkg/status

  FYI, I reported the bug below on the dash mailing list and got this
  response from Herbert Xu:

  > This is already fixed in the current git tree, by the commit:
  >
  > commit a7c21a6f4cb42d967854cae954efd4ee66bdea9c
  > Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
  > Date:   Fri Aug 23 20:04:12 2013 +1000
  >
  >    [EXPAND] Propagate EXP_QPAT in subevalvar

  I checked dash_0.5.8-1_amd64.deb from Debian experimental and this bug
  seems to be fixed there as well (but still broken in Debian sid, where
  the current version is dash_0.5.7-4_amd64.deb).

  ----------
  Hi all.  I recently found a bug in dash's handling of substring
  processing, when the variable is contained within quotes.

  In bash, this works:

    bash$ echo $PWD
    /home/psmith

    bash$ echo ${PWD%${PWD##*/}}.
    /home/.

    bash$ echo "${PWD%${PWD##*/}}."
    /home/.

  which is what I expect.  However, in dash we get:

    dash$ echo $PWD
    /home/psmith

    dash$ echo ${PWD%${PWD##*/}}.
    /home/.

    dash$ echo "${PWD%${PWD##*/}}."
    .

  Whoops!  Inside double-quotes dash is mishandling the nested string
  substitution.  If I break it up into two steps it works OK, regardless
  of whether or not it's quoted.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dash/+bug/1378625/+subscriptions


Follow ups

References