38 lines
1.2 KiB
Markdown
38 lines
1.2 KiB
Markdown
# Test Case: Xattr declared-image bounds
|
|
|
|
**Test ID**: TC137-xattr-declared-image-bounds
|
|
**Fixtures**: `basic.erofs`, `bad-shared-declared-bounds.erofs`, `bad-prefix-declared-bounds.erofs`
|
|
|
|
## Objective
|
|
|
|
Ensure shared and prefix reads are bounded by superblock `blocks`, even when
|
|
the provider contains a valid-looking appended sentinel. Require manifest
|
|
provider/declared sizes, sentinel offsets, redirected ID/start, and hashes.
|
|
|
|
## Manual steps
|
|
|
|
Run three independent cycles:
|
|
|
|
```sh
|
|
# basic.erofs control
|
|
getextattr -qq -x user shared_key /mnt/repo22-g4/shared-a
|
|
getextattr -qq -x user local /mnt/repo22-g4/shared-a
|
|
|
|
# bad-shared-declared-bounds.erofs
|
|
stat -f 'size=%z' /mnt/repo22-g4/shared-a
|
|
getextattr -qq -x user local /mnt/repo22-g4/shared-a
|
|
truss -o /tmp/tc137-shared.truss getextattr -qq user shared_key \
|
|
/mnt/repo22-g4/shared-a
|
|
grep extattr_get_file /tmp/tc137-shared.truss
|
|
|
|
# bad-prefix-declared-bounds.erofs
|
|
truss -f -o /tmp/tc137-prefix.truss mount -t erofs -o ro \
|
|
/dev/${unit} /mnt/repo22-g4
|
|
grep nmount /tmp/tc137-prefix.truss
|
|
```
|
|
|
|
## Expected results
|
|
|
|
Control passes. The shared sentinel get and prefix mount return `EINTEGRITY`
|
|
(97); normal data and `local` remain readable. Sentinel bytes never appear.
|