(fix) handle redirected_statement treesitter node in bash permissions #6737
+50
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patch fixes two issues in bash tool permission handling:
1. bash redirect statements are not handled (treesitter-bash usage)
Any commands parsed don't have redirects included (e.g.
ls foo > barresults inls foo) which prevents permission rules to match properly (e.g."ls *>*": "deny"does not apply).Cause: Redirect statements are parents of commands, thus not recognized in the loop over
descendantsOfType("command")Solution: use
node.parent.textfor the pattern matching, which includes the full command2. bash always pattern lacks a space after the command
Approving
lsaddsls*as an always pattern, which allows also other commands (e.g.lsof) which is not intended.Solution: add a space so
ls*becomesls *in the pattern