IMcPwn/browser-backdoor

View on GitHub
tools/cibuild.sh

Summary

Maintainability
Test Coverage

Use a ( subshell ) to avoid having to cd back.
Open

cd -
Severity: Minor
Found in tools/cibuild.sh by shellcheck

Use a ( subshell ) to avoid having to cd back.

Problematic code:

for dir in */
do
  cd "$dir"
  convert index.png index.jpg
  cd ..
done

Correct code:

for dir in */
do
  (
  cd "$dir" || exit
  convert index.png index.jpg
  )
done

or

for dir in */
do
  cd "$dir" || exit
  convert index.png index.jpg
  cd ..
done

Rationale:

When doing cd dir; somestuff; cd .., cd dir can fail when permissions are lacking, if the dir was deleted, or if dir is actually a file.

In this case, somestuff will run in the wrong directory and cd .. will take you to an even more wrong directory. In a loop, this will likely cause the next cd to fail as well, propagating this error and running these commands far away from the intended directories.

Check cds exit status and/or use subshells to limit the effects of cd.

Exceptions

If you set variables you can't use a subshell. In that case, you should definitely check the exit status of cd, which will also silence this suggestion.

Notice

Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.

There are no issues that match your filters.

Category
Status