livepatch/selftests: use "$@" to preserve argument list
authorJoe Lawrence <joe.lawrence@redhat.com>
Fri, 8 Feb 2019 20:57:37 +0000 (15:57 -0500)
committerPetr Mladek <pmladek@suse.com>
Tue, 12 Feb 2019 09:58:47 +0000 (10:58 +0100)
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>
tools/testing/selftests/livepatch/functions.sh

index c7b9fb4..3019544 100644 (file)
@@ -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