| From b1e4205911d772c360cdf9f723a90d609dd329c2 Mon Sep 17 00:00:00 2001 |
| From: Kees Cook <keescook@chromium.org> |
| Date: Wed, 30 Oct 2019 12:46:08 -0700 |
| Subject: [PATCH] selftests: gen_kselftest_tar.sh: Do not clobber kselftest/ |
| |
| commit ea1bf0bb18c0bd627d7b551196453ff2fff44225 upstream. |
| |
| The default installation location for gen_kselftest_tar.sh was still |
| "kselftest/" which collides with the existing directory. Instead, this |
| moves the installation target into "kselftest_install/kselftest/" and |
| adjusts the tar creation accordingly. This also adjusts indentation and |
| logic to be consistent. |
| |
| Fixes: 42d46e57ec97 ("selftests: Extract single-test shell logic from lib.mk") |
| Signed-off-by: Kees Cook <keescook@chromium.org> |
| Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/tools/testing/selftests/gen_kselftest_tar.sh b/tools/testing/selftests/gen_kselftest_tar.sh |
| index a27e2eec3586..8b2b6088540d 100755 |
| --- a/tools/testing/selftests/gen_kselftest_tar.sh |
| +++ b/tools/testing/selftests/gen_kselftest_tar.sh |
| @@ -38,16 +38,21 @@ main() |
| esac |
| fi |
| |
| - install_dir=./kselftest |
| + # Create working directory. |
| + dest=`pwd` |
| + install_work="$dest"/kselftest_install |
| + install_name=kselftest |
| + install_dir="$install_work"/"$install_name" |
| + mkdir -p "$install_dir" |
| |
| -# Run install using INSTALL_KSFT_PATH override to generate install |
| -# directory |
| -./kselftest_install.sh |
| -tar $copts kselftest${ext} $install_dir |
| -echo "Kselftest archive kselftest${ext} created!" |
| + # Run install using INSTALL_KSFT_PATH override to generate install |
| + # directory |
| + ./kselftest_install.sh "$install_dir" |
| + (cd "$install_work"; tar $copts "$dest"/kselftest${ext} $install_name) |
| + echo "Kselftest archive kselftest${ext} created!" |
| |
| -# clean up install directory |
| -rm -rf kselftest |
| + # clean up top-level install work directory |
| + rm -rf "$install_work" |
| } |
| |
| main "$@" |
| diff --git a/tools/testing/selftests/kselftest_install.sh b/tools/testing/selftests/kselftest_install.sh |
| old mode 100755 |
| new mode 100644 |
| index ec304463883c..bcc65f7230b1 |
| --- a/tools/testing/selftests/kselftest_install.sh |
| +++ b/tools/testing/selftests/kselftest_install.sh |
| @@ -6,30 +6,30 @@ |
| # Author: Shuah Khan <shuahkh@osg.samsung.com> |
| # Copyright (C) 2015 Samsung Electronics Co., Ltd. |
| |
| -install_loc=`pwd` |
| - |
| main() |
| { |
| - if [ $(basename $install_loc) != "selftests" ]; then |
| + base_dir=`pwd` |
| + install_dir="$base_dir"/kselftest_install |
| + |
| + # Make sure we're in the selftests top-level directory. |
| + if [ $(basename "$base_dir") != "selftests" ]; then |
| echo "$0: Please run it in selftests directory ..." |
| exit 1; |
| fi |
| + |
| + # Only allow installation into an existing location. |
| if [ "$#" -eq 0 ]; then |
| - echo "$0: Installing in default location - $install_loc ..." |
| + echo "$0: Installing in default location - $install_dir ..." |
| elif [ ! -d "$1" ]; then |
| echo "$0: $1 doesn't exist!!" |
| exit 1; |
| else |
| - install_loc=$1 |
| - echo "$0: Installing in specified location - $install_loc ..." |
| + install_dir="$1" |
| + echo "$0: Installing in specified location - $install_dir ..." |
| fi |
| |
| - install_dir=$install_loc/kselftest |
| - |
| -# Create install directory |
| - mkdir -p $install_dir |
| -# Build tests |
| - INSTALL_PATH=$install_dir make install |
| + # Build tests |
| + INSTALL_PATH="$install_dir" make install |
| } |
| |
| main "$@" |
| -- |
| 2.7.4 |
| |