summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2015-03-19 12:44:41 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2015-03-19 12:44:41 +0000
commitb0b109a06f1f890b8833c6afa38c357a084c65bc (patch)
treed41f44cc623b5c198e037a0055151dacb0eeefab
parent34d5c6cd766e9565c09721004f68f570b40da857 (diff)
downloadalpine-conf-b0b109a06f1f890b8833c6afa38c357a084c65bc.tar.bz2
alpine-conf-b0b109a06f1f890b8833c6afa38c357a084c65bc.tar.xz
setup-apkcache: fix infinite loop when non-existing dir specified
to reproduce: setup-apkcache /ponies ref #3976
-rw-r--r--setup-apkcache.in4
1 files changed, 2 insertions, 2 deletions
diff --git a/setup-apkcache.in b/setup-apkcache.in
index 0e578c8..5210d82 100644
--- a/setup-apkcache.in
+++ b/setup-apkcache.in
@@ -47,10 +47,10 @@ find_mount_point() {
fi
local dir="$1"
- while ! [ -d "$dir" ]; do
+ while [ -n "$dir" ] && ! [ -d "$dir" ]; do
dir=${dir%/*}
done
- local fs_id=$(stat -f -c %i "$dir")
+ local fs_id=$(stat -f -c %i "${dir:-/}")
local parent="${dir%/*}"
while [ -n "$dir" ] && [ "$(stat -f -c %i $parent/)" = "$fs_id" ]; do
dir=$parent