[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 2d692d9d78 / #854.
This commit is contained in:
Jordan Harband
2026-03-14 14:30:54 -07:00
parent bda39c7c04
commit 53e6244aa6
2 changed files with 5 additions and 1 deletions

2
nvm.sh
View File

@@ -2967,7 +2967,7 @@ nvm_iojs_version_has_solaris_binary() {
IOJS_VERSION="$1" IOJS_VERSION="$1"
local STRIPPED_IOJS_VERSION local STRIPPED_IOJS_VERSION
STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix "${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 return 1
fi fi

View File

@@ -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 "foo"
assert_not_ok nvm_iojs_version_has_solaris_binary "v1.1.0" 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 "v3.3.1"
assert_ok nvm_iojs_version_has_solaris_binary "iojs-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" assert_ok nvm_iojs_version_has_solaris_binary "v3.3.2"