Jeremy Rose
bc3545b805
Validate linked worktrees before inheriting project trust ( #39616 )
...
## Why
A checkout could point its `.git` file at a trusted repository's worktree
directory without proving that the repository had registered that checkout.
This could cause project configuration from an unrelated checkout to be treated
as trusted.
## What changed
- Verify the linked worktree's `gitdir` backlink, `commondir`, registered
checkout, and main checkout ownership before resolving the main repository's
trust key.
- Reject missing, oversized, symlinked, mismatched, or swapped Git metadata.
- Preserve valid linked worktrees that use path aliases, separate Git
directories, or non-UTF-8 POSIX paths.
## Testing
Add resolver and config-loading coverage for forged worktrees, metadata races,
case-sensitive paths, moved worktrees, and host MCP startup from project config.
GitOrigin-RevId: 6052a7d10ad2d613436f20175c356abdef8c758e
2026-08-20 06:29:32 +00:00
..
2026-08-14 02:32:05 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 05:29:12 +00:00
2026-08-13 00:00:16 +00:00
2026-08-17 21:49:30 +00:00
2026-08-20 06:21:54 +00:00
2026-08-20 05:07:17 +00:00
2026-08-13 00:00:16 +00:00
2026-08-18 16:27:54 +00:00
2026-08-17 11:44:56 +00:00
2026-07-09 03:40:08 +00:00
2026-08-13 00:00:16 +00:00
2026-08-14 05:49:33 +00:00
2026-08-17 13:16:05 +00:00
2026-08-13 00:00:16 +00:00
2026-08-19 15:47:56 +00:00
2026-08-13 00:00:16 +00:00
2026-08-18 07:32:03 +00:00
2026-08-13 00:00:16 +00:00
2026-08-18 09:38:27 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 21:53:52 +00:00
2026-08-19 15:21:11 +00:00
2026-06-19 05:35:57 -07:00
2026-08-19 18:01:14 +00:00
2026-06-18 14:09:38 +02:00
2026-08-17 21:49:30 +00:00
2026-08-19 04:46:58 +00:00
2026-08-20 05:29:12 +00:00
2026-08-13 00:00:16 +00:00
2026-08-19 01:26:16 +00:00
2026-08-18 22:10:43 +00:00
2026-08-13 15:23:09 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-06-15 21:53:47 -07:00
2026-08-13 00:00:16 +00:00
2026-08-19 01:15:10 +00:00
2026-08-04 15:23:43 +00:00
2026-08-19 01:26:16 +00:00
2026-08-14 18:35:13 +00:00
2026-08-19 01:26:16 +00:00
2026-08-14 04:46:04 +00:00
2026-08-20 06:29:32 +00:00
2026-05-18 21:03:51 -07:00
2026-08-13 00:00:16 +00:00
2026-08-15 16:58:08 +00:00
2026-08-17 10:01:59 +00:00
2026-08-17 11:44:56 +00:00
2026-08-13 00:00:16 +00:00
2026-08-14 18:26:20 +00:00
2026-08-18 22:20:32 +00:00
2026-08-14 07:52:38 +00:00
2026-08-20 06:03:25 +00:00
2026-08-17 21:49:30 +00:00
2026-08-13 02:40:49 +00:00
2026-06-08 13:55:15 -07:00
2026-08-13 00:00:16 +00:00
2026-08-17 11:44:56 +00:00
2026-08-17 11:44:56 +00:00
2026-08-19 01:26:16 +00:00
2026-07-14 10:37:23 +00:00
2026-08-14 19:07:15 +00:00
2026-07-22 20:23:35 +00:00
2026-08-13 00:00:16 +00:00
2026-08-18 18:41:40 +00:00
2026-08-01 01:17:26 +00:00
2026-08-20 05:29:12 +00:00
2026-08-17 11:44:56 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-18 19:17:09 +00:00
2026-08-18 05:42:39 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-14 05:49:33 +00:00
2026-07-22 00:50:28 +00:00
2026-08-18 05:46:08 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 23:13:37 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 06:25:17 +00:00
2026-08-13 00:00:16 +00:00
2026-07-23 19:19:35 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 05:42:20 +00:00
2026-08-20 05:29:12 +00:00
2026-06-23 14:27:13 -07:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-17 10:01:59 +00:00
2026-08-17 10:01:59 +00:00
2026-08-14 18:26:20 +00:00
2026-08-16 00:57:28 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-14 18:26:20 +00:00
2026-08-17 10:01:59 +00:00
2026-08-13 00:00:16 +00:00
2026-08-14 12:21:08 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 19:25:05 +00:00
2026-08-07 22:41:20 +00:00
2026-08-17 18:15:56 +00:00
2026-08-13 00:00:16 +00:00
2026-08-19 01:26:16 +00:00
2026-08-10 19:26:52 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-19 15:32:59 +00:00
2026-08-14 01:23:59 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-17 21:49:30 +00:00
2026-08-05 06:38:57 +00:00
2026-08-20 06:29:32 +00:00