Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
changeset 589:d791601ac1be
farray.sh: farray_splice() now checks the given index and length values
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 18 Sep 2024 13:13:26 +0200 |
| parents | fb7e5cd69494 |
| children | ce29bad1fd3b |
| files | share/local-bsdtools/farray.sh |
| diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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
