b6778ca7d0
- git snapshot
42 lines
1.3 KiB
Diff
42 lines
1.3 KiB
Diff
From c59779cf9337bc0fc48c7a4d8437f7253f6822c3 Mon Sep 17 00:00:00 2001
|
|
From: Lubomir Rintel <lkundrak@v3.sk>
|
|
Date: Tue, 23 Dec 2014 22:03:10 +0100
|
|
Subject: [PATCH] dracut-functions.sh: avoid tokenizing ldconfig output with
|
|
'read'
|
|
|
|
The space does not separate the elements reliably, spaces can be
|
|
embedded in parenthesized expressions too:
|
|
|
|
libgmpxx.so.4 (libc6, hwcap: 0x0000000004000000) => /lib/sse2/libgmpxx.so.4
|
|
libgmp.so.10 (libc6, hwcap: 0x0000000004000000) => /lib/sse2/libgmp.so.10
|
|
|
|
This results in dracut creating '0x0000000004000000' and '=>'
|
|
directories in the initramfs image.
|
|
---
|
|
dracut-functions.sh | 12 +-----------
|
|
1 file changed, 1 insertion(+), 11 deletions(-)
|
|
|
|
diff --git a/dracut-functions.sh b/dracut-functions.sh
|
|
index 410960d..37ddca2 100755
|
|
--- a/dracut-functions.sh
|
|
+++ b/dracut-functions.sh
|
|
@@ -104,17 +104,7 @@ fi
|
|
|
|
ldconfig_paths()
|
|
{
|
|
- local a i
|
|
- declare -A a
|
|
- for i in $(
|
|
- ldconfig -pN 2>/dev/null | grep -F '=>' | grep -E -v '/(lib|lib64|usr/lib|usr/lib64)/[^/]*$' | while read a b c d; do
|
|
- d=${d%/*}
|
|
- printf "%s\n" "$d";
|
|
- done
|
|
- ); do
|
|
- a["$i"]=1;
|
|
- done;
|
|
- printf "%s\n" ${!a[@]}
|
|
+ ldconfig -pN 2>/dev/null | grep -E -v '/(lib|lib64|usr/lib|usr/lib64)/[^/]*$' | sed -n 's,.* => \(.*\)/.*,\1,p' | sort | uniq
|
|
}
|
|
|
|
# Detect lib paths
|