Felipe Coury
bd92b056dd
Ignore inherited ACEs when refreshing Windows write roots ( #34392 )
...
## Why
An inherited `FILE_DELETE_CHILD` grant can make a write root look stale, but
`SET_ACCESS` cannot replace an ACE inherited from an ancestor. Treating that
grant as explicit causes unnecessary ACL refresh attempts that cannot converge.
## What changed
- Add explicit-ACE filtering to the Windows DACL permission checks.
- Refresh a write root only when `FILE_DELETE_CHILD` is present in an explicit
allow ACE, while retaining effective-permission checks for required rights.
- Ignore inherited stale rights when deciding whether `SET_ACCESS` must repair
an allow ACE.
## Testing
Add a Windows regression test covering a write root that inherits
`FILE_DELETE_CHILD`, verifying that repeated refresh checks leave its explicit
write ACE unchanged.
GitOrigin-RevId: d0df9429efcf299da3ff3c1bce92942684803293
2026-07-20 18:28:02 +00:00
..
2026-07-02 10:59:00 -07:00
2026-06-09 12:48:04 -07:00
2026-06-24 13:24:10 -07:00
2026-06-22 13:19:40 -07:00
2026-07-18 23:22:13 +00:00
2026-05-07 15:44:17 -07:00
2026-07-20 17:36:44 +00:00
2026-07-10 21:24:03 +00:00
2026-07-20 13:45:29 +00:00
2026-07-20 17:36:44 +00:00
2026-07-14 21:54:24 +00:00
2026-07-14 00:38:04 +00:00
2026-06-23 00:02:33 +00:00
2026-07-06 12:17:16 -07:00
2026-06-11 18:16:39 -07:00
2026-05-08 04:07:59 +00:00
2026-07-14 22:43:26 +00:00
2026-06-13 21:43:39 -07:00
2026-07-16 17:46:36 +00:00
2026-07-18 16:14:48 +00:00
2026-07-07 17:05:05 -07:00
2026-07-07 01:34:36 +00:00
2026-06-11 18:16:39 -07:00
2026-06-11 18:16:39 -07:00
2026-07-18 23:22:13 +00:00
2026-07-06 16:26:56 -07:00
2026-07-18 23:22:13 +00:00
2026-07-20 17:18:25 +00:00
2026-07-07 13:00:44 -07:00
2026-07-07 01:12:24 +00:00
2026-05-07 15:44:17 -07:00
2026-06-15 20:10:53 -07:00
2026-07-20 17:55:58 +00:00
2026-06-21 13:35:25 -07:00
2026-07-20 13:45:29 +00:00
2026-07-17 15:23:35 +00:00
2026-06-22 11:11:25 -07:00
2026-07-20 18:03:12 +00:00
2026-07-14 17:10:04 +00:00
2026-07-17 21:29:51 +00:00
2026-07-17 15:45:48 +00:00
2026-06-05 15:41:13 -07:00
2026-07-20 13:45:29 +00:00
2026-07-20 13:45:29 +00:00
2026-07-17 21:20:14 +00:00
2026-07-20 06:13:29 +00:00
2026-07-20 17:55:58 +00:00
2026-07-17 19:58:56 +00:00
2026-07-20 17:27:23 +00:00
2026-07-20 13:45:29 +00:00
2026-05-07 15:44:17 -07:00
2026-07-16 16:13:53 +00:00
2026-05-28 23:09:55 -07:00
2026-07-07 20:01:03 -04:00
2026-07-17 23:24:26 +00:00
2026-07-09 14:26:20 -07:00
2026-07-08 12:17:58 -04:00
2026-06-12 19:52:49 +00:00
2026-07-14 16:40:13 +00:00
2026-05-07 15:44:17 -07:00
2026-07-16 19:31:26 +00:00
2026-07-20 13:45:29 +00:00
2026-07-16 00:22:53 +00:00
2026-07-17 20:52:42 +00:00
2026-07-16 21:41:00 +00:00
2026-07-16 21:41:00 +00:00
2026-07-20 17:47:49 +00:00
2026-07-17 21:20:14 +00:00
2026-06-04 09:53:08 -04:00
2026-07-20 16:25:57 +00:00
2026-06-23 22:51:19 +01:00
2026-05-25 17:26:10 -03:00
2026-07-14 20:14:29 +00:00
2026-07-20 17:36:44 +00:00
2026-04-22 22:24:12 -07:00
2026-05-07 15:44:17 -07:00
2026-07-17 21:20:14 +00:00
2026-07-20 17:41:33 +00:00
2026-07-16 00:22:53 +00:00
2026-07-16 16:13:53 +00:00
2026-05-26 20:59:47 -07:00
2026-06-12 19:52:49 +00:00
2026-07-16 01:12:14 +00:00
2026-06-25 13:56:08 -07:00
2026-07-14 20:56:43 +00:00
2026-07-20 17:41:33 +00:00
2026-05-07 15:44:17 -07:00
2026-05-13 21:23:19 +00:00
2026-05-07 15:44:17 -07:00
2026-07-18 03:58:20 +00:00
2026-07-20 17:41:33 +00:00
2026-07-17 23:14:37 +00:00
2026-07-20 16:05:14 +00:00
2026-05-07 15:44:17 -07:00
2026-07-20 17:36:44 +00:00
2026-06-13 21:43:39 -07:00
2026-06-13 21:43:39 -07:00
2026-07-08 12:57:27 -07:00
2026-07-20 18:28:02 +00:00
2026-07-09 17:31:44 -07:00
2026-07-20 17:36:44 +00:00
2026-07-20 17:36:44 +00:00
2026-04-20 22:41:54 -07:00
2026-07-11 03:27:51 +00:00
2026-07-09 11:53:18 -07:00
2026-06-04 09:16:03 -07:00
2026-05-26 20:59:47 -07:00