# HG changeset patch # User Franz Glasner # Date 1726658006 -7200 # Node ID d791601ac1beae203ae9e03d14ff7904a59344d9 # Parent fb7e5cd694943f9c6514e91a62260a512a59f637 farray.sh: farray_splice() now checks the given index and length values diff -r fb7e5cd69494 -r d791601ac1be share/local-bsdtools/farray.sh --- a/share/local-bsdtools/farray.sh Wed Sep 18 13:05:01 2024 +0200 +++ b/share/local-bsdtools/farray.sh Wed Sep 18 13:13:26 2024 +0200 @@ -662,16 +662,18 @@ if [ -z "${__farr_index}" ]; then __farr_index=$((__farr_l_len + 1)) else + _farr_is_decimal_number "${__farr_index}" || _farr_fatal "given index is not a valid number" if [ "${__farr_index}" -le 0 ]; then __farr_index=$((__farr_l_len + __farr_index)) fi - # NOTE: index value length + 1 is allowed: splice at the end + # NOTE: index value array_length + 1 is allowed: splice at the end [ \( "${__farr_index}" -lt 1 \) -o \( "${__farr_index}" -gt "$((__farr_l_len + 1))" \) ] && _farr_fatal "index out of range" fi # also check the given length if [ -z "${__farr_length}" ]; then __farr_length="$((__farr_l_len - __farr_index + 1))" else + _farr_is_decimal_number "${__farr_length}" || _farr_fatal "given length is not a valid number" [ \( "${__farr_length}" -lt 0 \) -o \( "${__farr_length}" -gt "$((__farr_l_len - __farr_index + 1))" \) ] && _farr_fatal "length out of valid range" fi if [ ${__farr_length} -eq ${__farr_r_len} ]; then