]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
fix(dracut): prevent symbolic links containing `//`
authorHarald Hoyer <harald@redhat.com>
Wed, 12 May 2021 13:09:35 +0000 (15:09 +0200)
committerHarald Hoyer <harald@hoyer.xyz>
Fri, 14 May 2021 06:35:30 +0000 (08:35 +0200)
Results in `usr/lib64 -> ..//usr/lib` for Arch Linux otherwise.

dracut.sh

index 4b762f180fd4a409bafb83c4ac66eac43a2b46c4..bfb7a1aca2bbbb9b0436cd15bbb47c7c35490543 100755 (executable)
--- a/dracut.sh
+++ b/dracut.sh
@@ -1838,6 +1838,7 @@ fi
 
 if [[ $prefix ]]; then
     for d in bin etc lib sbin tmp usr var $libdirs; do
+        d=${d#/}
         [[ $d == */* ]] && continue
         ln -sfn "${prefix#/}/${d#/}" "$initdir/$d"
     done
@@ -1845,6 +1846,7 @@ fi
 
 if [[ $kernel_only != yes ]]; then
     for d in usr usr/bin usr/sbin bin etc lib sbin tmp var var/tmp $libdirs; do
+        d=${d#/}
         [[ -e "${initdir}${prefix}/$d" ]] && continue
         if [ -L "/$d" ]; then
             inst_symlink "/$d" "${prefix}/$d"