Skip to content

Commit

Permalink
[Fix] Remove unneeded call to ls in nvm_arch
Browse files Browse the repository at this point in the history
Remove the call to `ls` that was used to determine the symlink
destination

Reasoning :

* `od` resolves symlink itself due to the use of `fopen`
* Prevent the behaviour of `od` which will hang if the filename is
  empty (i.e. `/sbin/init` missing) as it will be waiting for `stdin`
  compared to quitting with error if the file just doesn't exist

Fixes #3006
  • Loading branch information
signed-log authored and ljharb committed Jan 22, 2023
1 parent f36516b commit edacf82
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions nvm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1917,10 +1917,10 @@ nvm_get_arch() {

# If running a 64bit ARM kernel but a 32bit ARM userland,
# change ARCH to 32bit ARM (armv7l) if /sbin/init is 32bit executable
local L
if [ "$(uname)" = "Linux" ] && [ "${NVM_ARCH}" = arm64 ] &&
L="$(command ls -dl /sbin/init 2>/dev/null)" &&
[ "$(od -An -t x1 -j 4 -N 1 "${L#*-> }")" = ' 01' ]; then
if [ "$(uname)" = "Linux" ] \
&& [ "${NVM_ARCH}" = arm64 ] \
&& [ "$(command od -An -t x1 -j 4 -N 1 "/sbin/init" 2>/dev/null)" = ' 01' ]\
; then
NVM_ARCH=armv7l
HOST_ARCH=armv7l
fi
Expand Down

0 comments on commit edacf82

Please sign in to comment.