[openwrt/openwrt] base-files: quote values when evaluating uevent

LEDE Commits lede-commits at lists.infradead.org
Sun Feb 11 07:47:11 PST 2018


blogic pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/da52dd0c833d2ccf0be06838fc94d6f0865692c1

commit da52dd0c833d2ccf0be06838fc94d6f0865692c1
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Fri Feb 2 01:57:46 2018 +0100

    base-files: quote values when evaluating uevent
    
    When sourcing /sys/class/block/*/uevent values have to be quoted as
    they may contain spaces (e.g. in PARTNAME).
    Fix this by pre-processing with sed before sourcing.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 package/base-files/files/lib/upgrade/common.sh | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh
index 71cffc8..616131c 100644
--- a/package/base-files/files/lib/upgrade/common.sh
+++ b/package/base-files/files/lib/upgrade/common.sh
@@ -134,8 +134,7 @@ export_bootdevice() {
 		esac
 
 		if [ -e "$uevent" ]; then
-			. "$uevent"
-
+			eval "$(sed "s/=\(.*\)/=\'\1\'/" < "$uevent")"
 			export BOOTDEV_MAJOR=$MAJOR
 			export BOOTDEV_MINOR=$MINOR
 			return 0
@@ -150,7 +149,7 @@ export_partdevice() {
 	local uevent MAJOR MINOR DEVNAME DEVTYPE
 
 	for uevent in /sys/class/block/*/uevent; do
-		. "$uevent"
+		eval "$(sed "s/=\(.*\)/=\'\1\'/" < "$uevent")"
 		if [ $BOOTDEV_MAJOR = $MAJOR -a $(($BOOTDEV_MINOR + $offset)) = $MINOR -a -b "/dev/$DEVNAME" ]; then
 			export "$var=$DEVNAME"
 			return 0



More information about the lede-commits mailing list