diff options
author | Daniel Golle <daniel@makrotopia.org> | 2018-02-02 01:57:46 +0100 |
---|---|---|
committer | John Crispin <john@phrozen.org> | 2018-02-11 16:42:01 +0100 |
commit | da52dd0c833d2ccf0be06838fc94d6f0865692c1 (patch) | |
tree | b4494a54e4dc560462bd1f90362c6dc34aa92bb7 | |
parent | 25a72f5a01f80116d4cd0aafd99c0fd091be3fbd (diff) | |
download | upstream-da52dd0c833d2ccf0be06838fc94d6f0865692c1.tar.gz upstream-da52dd0c833d2ccf0be06838fc94d6f0865692c1.tar.bz2 upstream-da52dd0c833d2ccf0be06838fc94d6f0865692c1.zip |
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@makrotopia.org>
-rw-r--r-- | package/base-files/files/lib/upgrade/common.sh | 5 |
1 files 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 71cffc8587..616131c89c 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 |