From 2a9e6de11c5840b2dca8019973af704dc9a2a3b2 Mon Sep 17 00:00:00 2001 From: Thomas Perale Date: Fri, 29 May 2026 19:51:56 +0200 Subject: [PATCH] support/dependencies/check-host-cmake.sh: verify version argument When running 'make show-info-all' without a '.config', it is possible to trigger this script without passing a version number. The 'show-info-all' target is special because it forces the reading of all packages without requiring a .config, so BR2_HOST_CMAKE_AT_LEAST is unset and the script is called as: check-host-cmake.sh cmake cmake3 Without validation, the integer comparisons below would produce errors like: check-host-cmake.sh: line 37: [: cmake: integer expected It's possible to trigger this by adding the following file somewhere in you path: cat >/bin/cmake3 < Signed-off-by: Arnout Vandecappelle (cherry picked from commit e7533662a4362a39cfe4f37b1fd840fcc711eeb1) Signed-off-by: Thomas Perale --- support/dependencies/check-host-cmake.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/support/dependencies/check-host-cmake.sh b/support/dependencies/check-host-cmake.sh index fadeae9f6b..ca42df5113 100755 --- a/support/dependencies/check-host-cmake.sh +++ b/support/dependencies/check-host-cmake.sh @@ -6,6 +6,18 @@ major_min="${1%.*}" minor_min="${1#*.}" +# When running 'make show-info-all' or pkg-stats, it is possible to trigger this +# script without passing a version number. These cases are special because they +# force the reading of all packages without requiring a .config, so +# BR2_HOST_CMAKE_AT_LEAST is unset and the script is called as: +# check-host-cmake.sh cmake cmake3 +# Without validation, the integer comparisons below would produce errors like: +# check-host-cmake.sh: line 37: [: cmake: integer expected +# The following lines checks we have a single digit number from $1 before +# continuing the script. +[ "${major_min}" -eq "${major_min}" ] 2>/dev/null || exit 1 +[ "${minor_min}" -eq "${minor_min}" ] 2>/dev/null || exit 1 + shift for candidate; do