diff options
author | Joe Lawrence <joe.lawrence@redhat.com> | 2019-02-08 23:57:37 +0300 |
---|---|---|
committer | Petr Mladek <pmladek@suse.com> | 2019-02-12 12:58:47 +0300 |
commit | fbb76d579dff4a2e332566dcd1d5979ac92bc34b (patch) | |
tree | 70a6a8efcec81458ff50b1774469805af3d8db54 /tools/testing/selftests/livepatch | |
parent | a087cdd4073b78f4739ce6709daeb4f3267b4dbf (diff) | |
download | linux-fbb76d579dff4a2e332566dcd1d5979ac92bc34b.tar.xz |
livepatch/selftests: use "$@" to preserve argument list
The livepatch selftest functions.sh library uses "$*" and an
intermediate variable to extract and then pass arguments from function
to function call. The effect of this combination is that the argument
list is flattened into a single argument. Sometimes this is benign, but
in cases like __load_mod(), the modprobe invocation will interpret all
the module parameters as a single parameter.
Drop the intermediate variable and use the "$@" special parameter as
described in the bash manual.
Link: https://www.gnu.org/software/bash/manual/bash.html#Special-Parameters
Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
Reviewed-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Acked-by: Miroslav Benes <mbenes@suse.cz>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Diffstat (limited to 'tools/testing/selftests/livepatch')
-rw-r--r-- | tools/testing/selftests/livepatch/functions.sh | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/tools/testing/selftests/livepatch/functions.sh b/tools/testing/selftests/livepatch/functions.sh index c7b9fb45d7c9..30195449c63c 100644 --- a/tools/testing/selftests/livepatch/functions.sh +++ b/tools/testing/selftests/livepatch/functions.sh @@ -55,11 +55,10 @@ function is_livepatch_mod() { function __load_mod() { local mod="$1"; shift - local args="$*" - local msg="% modprobe $mod $args" + local msg="% modprobe $mod $*" log "${msg%% }" - ret=$(modprobe "$mod" "$args" 2>&1) + ret=$(modprobe "$mod" "$@" 2>&1) if [[ "$ret" != "" ]]; then die "$ret" fi @@ -75,12 +74,11 @@ function __load_mod() { # params - module parameters to pass to modprobe function load_mod() { local mod="$1"; shift - local args="$*" is_livepatch_mod "$mod" && die "use load_lp() to load the livepatch module $mod" - __load_mod "$mod" "$args" + __load_mod "$mod" "$@" } # load_lp_nowait(modname, params) - load a kernel module with a livepatch @@ -89,12 +87,11 @@ function load_mod() { # params - module parameters to pass to modprobe function load_lp_nowait() { local mod="$1"; shift - local args="$*" is_livepatch_mod "$mod" || die "module $mod is not a livepatch" - __load_mod "$mod" "$args" + __load_mod "$mod" "$@" # Wait for livepatch in sysfs ... loop_until '[[ -e "/sys/kernel/livepatch/$mod" ]]' || @@ -106,9 +103,8 @@ function load_lp_nowait() { # params - module parameters to pass to modprobe function load_lp() { local mod="$1"; shift - local args="$*" - load_lp_nowait "$mod" "$args" + load_lp_nowait "$mod" "$@" # Wait until the transition finishes ... loop_until 'grep -q '^0$' /sys/kernel/livepatch/$mod/transition' || @@ -120,11 +116,10 @@ function load_lp() { # params - module parameters to pass to modprobe function load_failing_mod() { local mod="$1"; shift - local args="$*" - local msg="% modprobe $mod $args" + local msg="% modprobe $mod $*" log "${msg%% }" - ret=$(modprobe "$mod" "$args" 2>&1) + ret=$(modprobe "$mod" "$@" 2>&1) if [[ "$ret" == "" ]]; then die "$mod unexpectedly loaded" fi |