# fix\(desktop\): refuse a Safari jar its page table doesn't describe, and route only TCC to Full Disk Access · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/commit/f979d6fc86970facff454a5ad0351937367378ea)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

Requested revision: f979d6fc86970facff454a5ad0351937367378ea

Requested commit: f979d6fc86970facff454a5ad0351937367378ea

Commit: f979d6fc86970facff454a5ad0351937367378ea

Tree: ab53d0b0108a91c93581a880f97b361f0b7989dd

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
fix(desktop): refuse a Safari jar its page table doesn't describe, and route only TCC to Full Disk Access

Two review findings on the Safari reader. The parser validated each declared
page but never checked that the declared pages account for the file, so a jar
with extra undeclared pages imported "successfully" with those cookies
silently missing; it now requires the remainder to be exactly what Safari
writes after the pages — nothing, the 8-byte checksum, or checksum plus a
length-prefixed property list — and refuses anything else. And
`isPermissionDenied` sent ordinary EACCES failures (mode bits, ACLs) to the
Full Disk Access grant, which cannot fix them; only TCC's EPERM routes there
now, and the TCC test injects a real EPERM instead of relying on chmod's
EACCES.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

```

## Parents

- [658ff9e76ec39459e3badfd0058bde4447094147](https://git.cafe/pingdotgg/t3code/commit/658ff9e76ec39459e3badfd0058bde4447094147?format=markdown)

[Source at this commit](https://git.cafe/pingdotgg/t3code/tree/f979d6fc86970facff454a5ad0351937367378ea?format=markdown)
