Hi, this is another bug report I have received. ----- Original message ----- From: Jeff King <peff@xxxxxxxx> To: Debian Bug Tracking System <submit@xxxxxxxxxxxxxxx> Subject: Bug#974900: dash removes trailing slash from script arguments Date: Monday, 16 November 2020 10:45 Package: dash Version: 0.5.11+git20200708+dd9ef66-2 Severity: normal Tags: upstream With the latest version of dash, I get this behavior: $ touch here $ dash -c 'printf "%s\n" "$@"' -- here/ not-here/ here not-here/ The trailing slash is stripped from the argument "here/", when the file "here" exists in the current directory (but not from "not-here/", which does not exist). This is rather surprising to scripts which may not even intend for their arguments to be files (I noticed because it breaks Git's test suite, which expects "some-script foo/" to preserve the trailing slash, which is meaningful in its internal path matching). And certainly it differs from the behavior of 0.5.10.2-7, which prints "here/". Bisection points to upstream 7638476 (shell: Enable fnmatch/glob by default, 2020-05-28). And indeed, building locally with "./configure --disable-fnmatch" makes the problem go away. But since that commit was only flipping the defaults, presumably the problem was already there. Bisecting with "--enable-fnmatch --enable-glob" shows that it comes from 6900ff6 (expand: Fix glibc glob(3) support, 2018-03-26). -- System Information: Debian Release: bullseye/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.9.0-2-amd64 (SMP w/16 CPU threads) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) Versions of packages dash depends on: ii debconf [debconf-2.0] 1.5.74 ii debianutils 4.11.2 ii dpkg 1.20.5 ii libc6 2.31-4 dash recommends no packages. dash suggests no packages. -- debconf information: * dash/sh: true