From c70fa3d00a364e784e0c88a1c4c974acde76d512 Mon Sep 17 00:00:00 2001 From: Kroese Date: Wed, 12 Mar 2025 21:17:47 +0100 Subject: [PATCH] feat: Validate specified size (#918) --- src/disk.sh | 5 +++-- src/reset.sh | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/disk.sh b/src/disk.sh index 13a60fc..7745e47 100644 --- a/src/disk.sh +++ b/src/disk.sh @@ -427,12 +427,13 @@ addDisk () { [ -z "$DISK_SPACE" ] && DISK_SPACE="16G" DISK_SPACE=$(echo "${DISK_SPACE^^}" | sed 's/MB/M/g;s/GB/G/g;s/TB/T/g') [[ -z "${DISK_SPACE//[0-9]}" ]] && DISK_SPACE="${DISK_SPACE}G" - DATA_SIZE=$(numfmt --from=iec "$DISK_SPACE") - if (( DATA_SIZE < 1 )); then + if ! numfmt --from=iec "$DISK_SPACE" &>/dev/null; then error "Invalid value for ${DISK_DESC^^}_SIZE: $DISK_SPACE" && exit 73 fi + DATA_SIZE=$(numfmt --from=iec "$DISK_SPACE") + if (( DATA_SIZE < 6442450944 )); then error "Please increase ${DISK_DESC^^}_SIZE to at least 6 GB." && exit 73 fi diff --git a/src/reset.sh b/src/reset.sh index 8621b76..fe80111 100644 --- a/src/reset.sh +++ b/src/reset.sh @@ -108,7 +108,11 @@ RAM_SPARE=500000000 RAM_AVAIL=$(free -b | grep -m 1 Mem: | awk '{print $7}') RAM_TOTAL=$(free -b | grep -m 1 Mem: | awk '{print $2}') RAM_SIZE=$(echo "${RAM_SIZE^^}" | sed 's/MB/M/g;s/GB/G/g;s/TB/T/g') +[[ -z ${RAM_SIZE//[0-9]} ]] && [ "$RAM_SIZE" -lt "130" ] && RAM_SIZE="${RAM_SIZE}G" +! numfmt --from=iec "$RAM_SIZE" &>/dev/null && error "Invalid RAM size: $RAM_SIZE" && exit 15 RAM_WANTED=$(numfmt --from=iec "$RAM_SIZE") +[ "$RAM_WANTED" -lt "136314880 " ] && error "Invalid RAM size: $RAM_SIZE" && exit 16 + AVAIL_GB=$(( RAM_AVAIL/1073741824 )) TOTAL_GB=$(( (RAM_TOTAL + 1073741823)/1073741824 )) WANTED_GB=$(( (RAM_WANTED + 1073741823)/1073741824 ))