From 407e57879ea2f931bff32993b850c9d59d228303 Mon Sep 17 00:00:00 2001 From: Laurentiu Palcu Date: Tue, 25 Jun 2013 14:59:05 +0300 Subject: [PATCH] populate_sdk_base, adt_installer: abort install if path contains spaces Spaces are not handled properly in some parts of oe-core and it's safer to abort toolchain installation if path contains spaces. Even though we fix space handling in the toolchain installation script, there are various other parts in the toolchain (perl scripts, sysroot path passed to toolchain binaries, shebang lines) that would need special handling. So, for now, just bail out if path contains spaces. The checking for spaces in the path is done after expanding relative paths to absolute and tilde conversion. [YOCTO #4488] (From OE-Core master rev: 8c35ba2d3048ce69f74f72cb2676e4bc162cfb63) Signed-off-by: Laurentiu Palcu Signed-off-by: Richard Purdie --- meta/classes/populate_sdk_base.bbclass | 13 +++++++++---- .../installer/adt-installer/adt_installer | 13 +++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass index e5bc0b409d..31e848dd62 100644 --- a/meta/classes/populate_sdk_base.bbclass +++ b/meta/classes/populate_sdk_base.bbclass @@ -181,11 +181,16 @@ else echo "$target_sdk_dir" fi -eval target_sdk_dir=$target_sdk_dir -if [ -d $target_sdk_dir ]; then - target_sdk_dir=$(cd $target_sdk_dir; pwd) +eval target_sdk_dir=$(printf "%q" "$target_sdk_dir") +if [ -d "$target_sdk_dir" ]; then + target_sdk_dir=$(cd "$target_sdk_dir"; pwd) else - target_sdk_dir=$(readlink -m $target_sdk_dir) + target_sdk_dir=$(readlink -m "$target_sdk_dir") +fi + +if [ -n "$(echo $target_sdk_dir|grep ' ')" ]; then + echo "The target directory path ($target_sdk_dir) contains spaces. Abort!" + exit 1 fi if [ -e "$target_sdk_dir/environment-setup-${REAL_MULTIMACH_TARGET_SYS}" ]; then diff --git a/meta/recipes-devtools/installer/adt-installer/adt_installer b/meta/recipes-devtools/installer/adt-installer/adt_installer index c0123913ef..58728afd63 100755 --- a/meta/recipes-devtools/installer/adt-installer/adt_installer +++ b/meta/recipes-devtools/installer/adt-installer/adt_installer @@ -339,11 +339,16 @@ if [ "$INSTALL_FOLDER" = "" ]; then INSTALL_FOLDER=$DEFAULT_INSTALL_FOLDER fi -eval INSTALL_FOLDER=$INSTALL_FOLDER -if [ -d $INSTALL_FOLDER ]; then - export INSTALL_FOLDER=$(cd $INSTALL_FOLDER; pwd) +eval INSTALL_FOLDER=$(printf "%q" "$INSTALL_FOLDER") +if [ -d "$INSTALL_FOLDER" ]; then + export INSTALL_FOLDER=$(cd "$INSTALL_FOLDER"; pwd) else - export INSTALL_FOLDER=$(readlink -m $INSTALL_FOLDER) + export INSTALL_FOLDER=$(readlink -m "$INSTALL_FOLDER") +fi + +if [ -n "$(echo $INSTALL_FOLDER|grep ' ')" ]; then + echo "The target directory path ($INSTALL_FOLDER) contains spaces. Abort!" + exit 1 fi clear -- 2.40.1