From: Pádraig Brady
Date: Fri, 7 Nov 2025 16:14:12 +0000 (+0000) Subject: install: fix crash with --strip and large $PATH on ppc and sparc X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=58944b541e53136dc946b4416e8d3d92a7b1be23;p=thirdparty%2Fcoreutils.git install: fix crash with --strip and large $PATH on ppc and sparc * gnulib: Update to the latest gnulib to pull in the fix (v1.0-2406-g89f63027de) to allocate the $PATH processing memory before the vfork call, which is required on ppc and sparc. * tests/install/basic-1.sh: Ensure posix_spawnp() suports a large $PATH, which needs careful handling with vfork() as detailed in gnulib. --- diff --git a/gnulib b/gnulib index c4db1328fb..f5d93312df 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit c4db1328fb2f01b83400cfb1f6d6c2bed953177c +Subproject commit f5d93312df380b06ef375629be4c301f85fd6d9a diff --git a/tests/install/basic-1.sh b/tests/install/basic-1.sh index fd13eb68bc..b529f2af9c 100755 --- a/tests/install/basic-1.sh +++ b/tests/install/basic-1.sh @@ -64,6 +64,11 @@ test -f $dd || fail=1 mode=$(ls -l $dir/$dd|cut -b-10) test "$mode" = -r-xr-xr-x || fail=1 +# Ensure there are no issues with posix_spawnp() and large $PATHs +# which we saw when initially changing from execvp() to posix_spawnp(). +PATH=$(printf '%4001s' '' | sed 's/\(.\{79\}\)./\1:/g'):$PATH \ + ginstall $strip -c -m 555 $dd $dir || fail=1 + # These failed in coreutils CVS from 2004-06-25 to 2004-08-11. ginstall -d . || fail=1 ginstall -d newdir || fail=1