Development record
The shell guard allows every blocker when a double-quoted command substitution sits in the same word as the flag: the quoted branch of the tokenizer keeps the substitution text in the word, so a force flag glued after an empty quoted substitution, or split around one, never matches, while bash joins the empty output onto the flag and runs it. The unquoted twin and an empty single-quoted pair already block. Found by review-guard finding 1.
issueresolvedmajoriss-2609251640353993
The shell guard allows every blocker when a double-quoted command substitution sits in the same word as the flag: the quoted branch of the tokenizer keeps the substitution text in the word, so a force flag glued after an empty quoted substitution, or split around one, never matches, while bash joins the empty output onto the flag and runs it. The unquoted twin and an empty single-quoted pair already block. Found by review-guard finding 1.
Grounds
- pursued: every blocker fires on a flag, subcommand or refspec glued beside or split around an empty quoted substitution, as its unquoted twin does, while quoted substitutions in ordinary arguments stay allowed; an allow of any case in TestFollowedQuotedSubstitutionGluesNoText, or a new block in the everyday-allow suites, would show it wrong
Frontmatter
| id | iss-2609251640353993 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | major |
.abcd/work/issues/resolved/iss-2609251640353993-the-shell-guard-allows-every-blocker.md
open on GitHub ↗ · commit history ↗