mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
fault-injection: enhance failcmd to exit on non-hex address input
The failcmd.sh script in the fault-injection toolkit does not currently validate whether the provided address is in hexadecimal format. This can lead to silent failures if the address is sourced from places like `/proc/kallsyms`, which omits the '0x' prefix, potentially causing users to operate under incorrect assumptions. Introduce a new function, `exit_if_not_hex`, which checks the format of the provided address and exits with an error message if the address is not a valid hexadecimal number. This enhancement prevents users from running the command with improperly formatted addresses, thus improving the robustness and usability of the failcmd tool. Link: https://lkml.kernel.org/r/20240729084512.3349928-1-leitao@debian.org Signed-off-by: Breno Leitao <leitao@debian.org> Reviewed-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
588661fd87
commit
11ee88a0f9
@ -64,6 +64,14 @@ ENVIRONMENT
|
||||
EOF
|
||||
}
|
||||
|
||||
exit_if_not_hex() {
|
||||
local value="$1"
|
||||
if ! [[ $value =~ ^0x[0-9a-fA-F]+$ ]]; then
|
||||
echo "Error: The provided value '$value' is not a valid hexadecimal number." >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
if [ $UID != 0 ]; then
|
||||
echo must be run as root >&2
|
||||
exit 1
|
||||
@ -160,18 +168,22 @@ while true; do
|
||||
shift 2
|
||||
;;
|
||||
--require-start)
|
||||
exit_if_not_hex "$2"
|
||||
echo $2 > $FAULTATTR/require-start
|
||||
shift 2
|
||||
;;
|
||||
--require-end)
|
||||
exit_if_not_hex "$2"
|
||||
echo $2 > $FAULTATTR/require-end
|
||||
shift 2
|
||||
;;
|
||||
--reject-start)
|
||||
exit_if_not_hex "$2"
|
||||
echo $2 > $FAULTATTR/reject-start
|
||||
shift 2
|
||||
;;
|
||||
--reject-end)
|
||||
exit_if_not_hex "$2"
|
||||
echo $2 > $FAULTATTR/reject-end
|
||||
shift 2
|
||||
;;
|
||||
|
Loading…
Reference in New Issue
Block a user