From 00d5818f5eb1be3e95a60fcf0b1b69b4ec28fdc9 Mon Sep 17 00:00:00 2001 From: EmilyGraceSeville7cf Date: Tue, 17 Sep 2024 08:30:19 +1000 Subject: [PATCH] Fixed(scripts/termux-call-log): Exit with error for invalid `-l` and `-o` options Co-authored-by: @EmilyGraceSeville7cf Co-authored-by: @agnostic-apollo --- scripts/termux-call-log.in | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/scripts/termux-call-log.in b/scripts/termux-call-log.in index 3d8df1e..0d09d3a 100644 --- a/scripts/termux-call-log.in +++ b/scripts/termux-call-log.in @@ -1,31 +1,45 @@ #!@TERMUX_PREFIX@/bin/bash set -u -PARAM_LIMIT=10 -PARAM_OFFSET=0 +PARAM_LIMIT_DEFAULT=10 +PARAM_LIMIT="$PARAM_LIMIT_DEFAULT" + +PARAM_OFFSET_DEFAULT=0 +PARAM_OFFSET="$PARAM_OFFSET_DEFAULT" + PARAMS="" SCRIPTNAME=termux-call-log +validate_is_postive_number() { + if [[ ! "${2:-}" =~ ^[0-9]+$ ]]; then + echo "ERROR: The -$1 value '${2:-}' is not a positive number." 1>&2 + show_usage || return $? + exit 1 + fi +} + show_usage () { - echo "Usage: $SCRIPTNAME [-l limit] [-o offset]" + echo "Usage: $SCRIPTNAME [-l ] [-o ]" echo "List call log history" - echo " -l limit offset in call log list (default: $PARAM_LIMIT)" - echo " -o offset offset in call log list (default: $PARAM_OFFSET)" - exit 0 + echo " -l limit in call log list (default: $PARAM_LIMIT_DEFAULT)" + echo " -o offset in call log list (default: $PARAM_OFFSET_DEFAULT)" } while getopts :hl:o: option do case "$option" in - h) show_usage;; - l) PARAM_LIMIT=$OPTARG;; - o) PARAM_OFFSET=$OPTARG;; + h) show_usage; exit 0;; + l) PARAM_LIMIT="$OPTARG";; + o) PARAM_OFFSET="$OPTARG";; ?) echo "$SCRIPTNAME: illegal option -$OPTARG"; exit 1; esac done shift $((OPTIND-1)) +validate_is_postive_number l "$PARAM_LIMIT" +validate_is_postive_number o "$PARAM_OFFSET" + if [ $# != 0 ]; then echo "$SCRIPTNAME: too many arguments"; exit 1; fi PARAMS="$PARAMS --ei offset $PARAM_OFFSET --ei limit $PARAM_LIMIT"