diff --git a/docker-cron-runner/xray-tools.sh b/docker-cron-runner/xray-tools.sh index 5765f330..13456e28 100644 --- a/docker-cron-runner/xray-tools.sh +++ b/docker-cron-runner/xray-tools.sh @@ -122,11 +122,28 @@ install_xray_core() { cd "$XRAYDIR" wget -q "https://github.com/XTLS/Xray-core/releases/download/${XRAY_VERSION}/Xray-linux-${ARCH}.zip" - unzip "Xray-linux-${ARCH}.zip" -d ./xray-unzip + + # Validate the downloaded zip file + if [ ! -f "Xray-linux-${ARCH}.zip" ] || [ ! -s "Xray-linux-${ARCH}.zip" ]; then + echo "[ERR] Failed to download Xray-core zip or file is empty" + cd "$OLD_DIR" + return 1 + fi + + unzip -q "Xray-linux-${ARCH}.zip" -d ./xray-unzip + + # Validate the extracted xray binary + if [ ! -f "./xray-unzip/xray" ] || [ ! -s "./xray-unzip/xray" ]; then + echo "[ERR] Failed to extract xray binary" + rm -rf ./xray-unzip + rm -f "Xray-linux-${ARCH}.zip" + cd "$OLD_DIR" + return 1 + fi + cp ./xray-unzip/xray ./"xray-linux-${FNAME}" rm -r xray-unzip rm "Xray-linux-${ARCH}.zip" - } if [ "${0##*/}" = "xray-tools.sh" ]; then cmd="$1"