From 53e6244aa6d921ad55cea97174066b85a29d52a8 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 14 Mar 2026 14:30:54 -0700 Subject: [PATCH] [Fix] `nvm_iojs_version_has_solaris_binary`: fix comparison to detect non-iojs versions Missing `_` prefix on the right side of the comparison meant the guard clause that rejects non-iojs versions almost never matched, allowing non-iojs versions to fall through. Bug introduced in https://github.com/nvm-sh/nvm/commit/2d692d9d7863844d9e5c499faf423b350235f72d / #854. --- nvm.sh | 2 +- test/fast/Unit tests/nvm_iojs_version_has_solaris_binary | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 5dabce7..4332e08 100755 --- a/nvm.sh +++ b/nvm.sh @@ -2967,7 +2967,7 @@ nvm_iojs_version_has_solaris_binary() { IOJS_VERSION="$1" local STRIPPED_IOJS_VERSION STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix "${IOJS_VERSION}")" - if [ "_${STRIPPED_IOJS_VERSION}" = "${IOJS_VERSION}" ]; then + if [ "_${STRIPPED_IOJS_VERSION}" = "_${IOJS_VERSION}" ]; then return 1 fi diff --git a/test/fast/Unit tests/nvm_iojs_version_has_solaris_binary b/test/fast/Unit tests/nvm_iojs_version_has_solaris_binary index 6394b1d..ab88516 100755 --- a/test/fast/Unit tests/nvm_iojs_version_has_solaris_binary +++ b/test/fast/Unit tests/nvm_iojs_version_has_solaris_binary @@ -10,6 +10,10 @@ assert_not_ok nvm_iojs_version_has_solaris_binary "" assert_not_ok nvm_iojs_version_has_solaris_binary "foo" assert_not_ok nvm_iojs_version_has_solaris_binary "v1.1.0" +# Non-iojs versions should fail (version is unchanged after stripping iojs prefix) +assert_not_ok nvm_iojs_version_has_solaris_binary "v4.0.0" +assert_not_ok nvm_iojs_version_has_solaris_binary "v8.0.0" + assert_ok nvm_iojs_version_has_solaris_binary "v3.3.1" assert_ok nvm_iojs_version_has_solaris_binary "iojs-v3.3.1" assert_ok nvm_iojs_version_has_solaris_binary "v3.3.2"