[git commit] install.sh: don't clobber dangling symlinks

Denys Vlasenko vda.linux at googlemail.com
Tue Jul 31 13:49:19 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=3d07446cef196c8c6f92a4d8006a56d348fca062
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Symlinks in a subdirectory that is to become target rootfs are sometimes
dangling because they link to canonical file names that are not present
on the host, but are present relative to the target rootfs root. Don't
copy over dangling symlinks when noclobber is enabled

The -e test treats dangling symlinks as non-existent files. Add -h test
that returns true for all symlinks.

Cc: Yann E. MORIN <yann.morin.1998 at free.fr>
Signed-off-by: Baruch Siach <baruch at tkos.co.il>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 applets/install.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/applets/install.sh b/applets/install.sh
index 9aede0f53..415896893 100755
--- a/applets/install.sh
+++ b/applets/install.sh
@@ -83,7 +83,7 @@ install -m 755 busybox "$prefix/bin/busybox" || exit 1
 for i in $h; do
 	appdir=`dirname "$i"`
 	app=`basename "$i"`
-	if [ x"$noclobber" = x"1" ] && [ -e "$prefix/$i" ]; then
+	if [ x"$noclobber" = x"1" ] && ([ -e "$prefix/$i" ] || [ -h "$prefix/$i" ]); then
 		echo "  $prefix/$i already exists"
 		continue
 	fi


More information about the busybox-cvs mailing list