Repository navigation
Conversation
…elain command runners (HACK-1438) The task-catalog inline-command denylist accepted `git send-email --to-cmd/--cc-cmd/--header-cmd/--sendmail-cmd` and `--smtp-server=/path`, each of which runs a command. send-email reads options with Perl's Getopt::Long defaults, so the one-dash and `+` prefixes, any letter case and unique prefixes are refused too, scoped to the send-email subcommand (dashed, absolute or mixed-case). Exact `--to`, `--cc` and `-h` still pass. A sweep of Git's porcelain adds the remaining command runners, each scoped to its subcommand: `grep -O`/`--open-files-in-pager`, `daemon --access-hook`, `instaweb -d`/`--httpd`, `svn --authors-prog`, plus the `remote-ext` helper, `ext::` URLs and `archimport` (which pastes its operands into a shell pipeline). Subcommand-scoped tables are now matched case-insensitively because a case-insensitive filesystem runs `git-send-email` for `git Send-Email`. Refs HACK-1438 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gs after the subcommand (HACK-1438) Merge origin/next (d09e1b7) into the HACK-1438 branch. #475 (HACK-1423) made subcommand-scoped Git flags count only after the operand that names the subcommand. Apply the same rule to the Getopt::Long send-email table and the HACK-1438 subcommandInline entries, keeping the lowercased subcommand lookup: one scopedEntries helper now serves both tables by operand index. `git log -o -- Grep` and `git rev-list --header send-email` now pass; `git log -- Grep -o` and every send-email spelling after the subcommand stay refused. Update the collateral test and docs to the one rule, and add tests that kill the `--`/`-` empty-name, `=ext::` and mid-argument `ext::` mutations. Refs HACK-1438 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-options Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs HACK-1438 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… a denylisted program (HACK-1461) A case-insensitive filesystem (APFS, NTFS) looks names up with Unicode case folding, so `git ſend-email --to-cmd=cmd` and `git filter-branch` ran the denylisted Git programs while the catalog's `toLowerCase()` comparison accepted them. Program, subcommand and module names are now compared after NFKC, removal of default-ignorable code points and upper-then-lower case folding, and a listed program or a Git subcommand spelled with any non-ASCII character is refused whatever follows. Docs describe the folding and the `help.autocorrect` limit next to the alias limit; the HACK-1438 collateral test comment no longer claims a subcommand counts at any operand. Refs HACK-1461 Refs HACK-1438 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…task runs (HACK-1461) The G109 verifier showed U+1E9E (capital sharp s) still slipped through: APFS folds it to ss, so a program named ẞh runs ssh, but upper-then-lower case folding turned it into ß. Fold lower, upper, then lower so ẞ becomes ss, and refuse any program run as argv[0] whose file name has a non-ASCII character, listed or not, so a folding this check does not predict cannot reach a listed program. Later arguments keep the folded list check. Tests for ẞh (bare, absolute, as an operand) and unlisted non-ASCII programs; both changes proven by mutation. Refs HACK-1461 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Integration gate for merge batch b63: origin/next + #490 (HACK-1438, HACK-1461). Tree f9b7ca85. Closed after the batch squashes.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.