Development record
The shell guard's arg_values operand compare lost a variable's written spelling when main began writing a parameter expansion as the unknown-value mark: rm -rf $HOME, "$HOME", ${HOME} and $HOME/.* allowed, rm -rf $PWD stopped warning, and rm -rf "$BUILD_DIR"/* and rm -rf $OUT/ blocked as deletes of the root because the variable was read as empty text. The tokenizer needs to carry each word's written spelling of its variables to arg_values without changing what any other matcher reads.
issueresolvedminoriss-2609290321312087
The shell guard's arg_values operand compare lost a variable's written spelling when main began writing a parameter expansion as the unknown-value mark: rm -rf $HOME, "$HOME", ${HOME} and $HOME/.* allowed, rm -rf $PWD stopped warning, and rm -rf "$BUILD_DIR"/* and rm -rf $OUT/ blocked as deletes of the root because the variable was read as empty text. The tokenizer needs to carry each word's written spelling of its variables to arg_values without changing what any other matcher reads.
Grounds
- pursued: rm -rf $HOME, "$HOME", ${HOME} and $HOME/.* block, $PWD forms warn, and "$BUILD_DIR"/* and $OUT/ allow, at top level and inside sh -c and bash -c strings (argspelling_test.go); a verdict diff of 12,515 inputs against main's tip with the two rm entries removed shows zero changes. A variable-bearing target that allows, or any other entry's verdict moving, would show it wrong.
Frontmatter
| id | iss-2609290321312087 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2609290321312087-the-shell-guard-s-arg-values-operand.md
open on GitHub ↗ · commit history ↗