update
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# Pre12 Batch 03: POSIX ACL mode helper
|
||||
|
||||
## Change
|
||||
|
||||
- In `src/xattr.c`, `erofs_acl_from_mode` now obtains the owner, group, and
|
||||
other permissions with `acl_posix1e_mode_to_perm`.
|
||||
- The helper tags are `ACL_USER_OBJ`, `ACL_GROUP_OBJ`, and `ACL_OTHER`, matching
|
||||
the adjacent `ae_tag` assignments.
|
||||
- No other function lines, ACL entry ordering, `acl_cnt`, IDs, default ACL
|
||||
handling, fallback behavior, flags, errno behavior, or control flow changed.
|
||||
|
||||
## Helper confirmation
|
||||
|
||||
- The local FreeBSD header `sys/sys/acl.h` declares
|
||||
`acl_posix1e_mode_to_perm(acl_tag_t tag, mode_t mode)` for kernel consumers.
|
||||
- The local FreeBSD implementation in `sys/kern/subr_acl_posix1e.c` maps
|
||||
`ACL_USER_OBJ` from `S_IRWXU`, `ACL_GROUP_OBJ` from `S_IRWXG`, and
|
||||
`ACL_OTHER` from `S_IRWXO`, returning the corresponding POSIX ACL read,
|
||||
write, and execute permission bits.
|
||||
- `src/xattr.c` already includes `<sys/acl.h>`; no include change was needed.
|
||||
|
||||
## Exhaustive equivalence
|
||||
|
||||
A temporary standalone C program reproduced the local FreeBSD helper logic and
|
||||
compared it with the three replaced expressions for every permission mode from
|
||||
`0000` through `0777`:
|
||||
|
||||
```text
|
||||
equivalent=1536/1536 modes=512 tags=3 mismatches=0
|
||||
temporary_cleanup=ok
|
||||
```
|
||||
|
||||
This covers 512 modes for each of the three tags. The temporary source and
|
||||
executable were deleted and are not part of the repository.
|
||||
|
||||
## Static validation
|
||||
|
||||
- The `erofs_acl_from_mode` function is line-for-line unchanged except for the
|
||||
three `ae_perm` expressions.
|
||||
- The source diff changes only those three expressions; this document is the
|
||||
only added file.
|
||||
- `git diff --check` and `git diff --cached --check` completed without errors.
|
||||
- Before commit, both unstaged status and staged status contained only
|
||||
`src/xattr.c` and `docs/pre12-batch-03.md` under `repo-pre-12`.
|
||||
|
||||
## Tests not run
|
||||
|
||||
Per the Batch 03 execution constraints, no project build, QEMU run, smoke test,
|
||||
or feature test was run.
|
||||
Reference in New Issue
Block a user