Commit fbb76d57 authored by Joe Lawrence's avatar Joe Lawrence Committed by Petr Mladek

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-ParametersSigned-off-by: default avatarJoe Lawrence <joe.lawrence@redhat.com>
Reviewed-by: default avatarKamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Acked-by: default avatarMiroslav Benes <mbenes@suse.cz>
Signed-off-by: default avatarPetr Mladek <pmladek@suse.com>
parent a087cdd4
...@@ -55,11 +55,10 @@ function is_livepatch_mod() { ...@@ -55,11 +55,10 @@ function is_livepatch_mod() {
function __load_mod() { function __load_mod() {
local mod="$1"; shift local mod="$1"; shift
local args="$*"
local msg="% modprobe $mod $args" local msg="% modprobe $mod $*"
log "${msg%% }" log "${msg%% }"
ret=$(modprobe "$mod" "$args" 2>&1) ret=$(modprobe "$mod" "$@" 2>&1)
if [[ "$ret" != "" ]]; then if [[ "$ret" != "" ]]; then
die "$ret" die "$ret"
fi fi
...@@ -75,12 +74,11 @@ function __load_mod() { ...@@ -75,12 +74,11 @@ function __load_mod() {
# params - module parameters to pass to modprobe # params - module parameters to pass to modprobe
function load_mod() { function load_mod() {
local mod="$1"; shift local mod="$1"; shift
local args="$*"
is_livepatch_mod "$mod" && is_livepatch_mod "$mod" &&
die "use load_lp() to load the livepatch module $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 # load_lp_nowait(modname, params) - load a kernel module with a livepatch
...@@ -89,12 +87,11 @@ function load_mod() { ...@@ -89,12 +87,11 @@ function load_mod() {
# params - module parameters to pass to modprobe # params - module parameters to pass to modprobe
function load_lp_nowait() { function load_lp_nowait() {
local mod="$1"; shift local mod="$1"; shift
local args="$*"
is_livepatch_mod "$mod" || is_livepatch_mod "$mod" ||
die "module $mod is not a livepatch" die "module $mod is not a livepatch"
__load_mod "$mod" "$args" __load_mod "$mod" "$@"
# Wait for livepatch in sysfs ... # Wait for livepatch in sysfs ...
loop_until '[[ -e "/sys/kernel/livepatch/$mod" ]]' || loop_until '[[ -e "/sys/kernel/livepatch/$mod" ]]' ||
...@@ -106,9 +103,8 @@ function load_lp_nowait() { ...@@ -106,9 +103,8 @@ function load_lp_nowait() {
# params - module parameters to pass to modprobe # params - module parameters to pass to modprobe
function load_lp() { function load_lp() {
local mod="$1"; shift local mod="$1"; shift
local args="$*"
load_lp_nowait "$mod" "$args" load_lp_nowait "$mod" "$@"
# Wait until the transition finishes ... # Wait until the transition finishes ...
loop_until 'grep -q '^0$' /sys/kernel/livepatch/$mod/transition' || loop_until 'grep -q '^0$' /sys/kernel/livepatch/$mod/transition' ||
...@@ -120,11 +116,10 @@ function load_lp() { ...@@ -120,11 +116,10 @@ function load_lp() {
# params - module parameters to pass to modprobe # params - module parameters to pass to modprobe
function load_failing_mod() { function load_failing_mod() {
local mod="$1"; shift local mod="$1"; shift
local args="$*"
local msg="% modprobe $mod $args" local msg="% modprobe $mod $*"
log "${msg%% }" log "${msg%% }"
ret=$(modprobe "$mod" "$args" 2>&1) ret=$(modprobe "$mod" "$@" 2>&1)
if [[ "$ret" == "" ]]; then if [[ "$ret" == "" ]]; then
die "$mod unexpectedly loaded" die "$mod unexpectedly loaded"
fi fi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment