dwetscher and Claude Opus 5.5
f73a3df974
AF.5: bound hostile Affinity files; fuzz the new import paths
...
- One budget for the whole read (layers, pixels, characters, table
cells), shared with embedded documents and charged also when their
reading fails; the first reading is dropped before the second.
- Tables: at most 65 536 cells; lines and cell formats that don't
match the grid are left out instead of shifted.
- Paragraph formats matched to runs by binary search; font names
longer than 256 bytes are dropped.
- Overlays: one work budget per import; encoded originals decoded
within their layer's size; table cell outlines recoloured too.
- Engine: master page copies capped, each page's master found in
linear time, line gaps looked up once per font, the working CMYK
table built once, objects past MAX_COORD left out.
- Embedded content stays with its node; pixel masks under artistic
text are read whole and include stroke reach; gradient overlays on
hidden layers are kept.
- Render: contexts and raster effect images stay within
MAX_RASTER_SIDE per side (vello overflowed near u16::MAX; found by
the new fuzz target).
- Tests: affinity tests/import_limits.rs, feature samples in
import_fuzz.rs, shared builders in engine/tests/support/.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-22 18:24:57 +07:00
..
2026-10-22 18:24:57 +07:00
2026-10-10 14:27:24 +07:00
2026-10-22 00:48:57 +03:00
2026-10-21 16:46:18 +07:00
2026-10-22 17:20:48 +07:00
2026-10-16 17:55:48 +00:00
2026-10-14 13:49:59 +07:00
2026-10-10 10:28:03 +07:00
2026-10-21 16:46:41 +07:00
2026-10-12 11:02:32 +07:00
2026-10-22 06:40:27 +07:00
2026-10-17 17:13:03 +07:00
2026-10-16 06:16:36 +07:00
2026-10-12 11:02:32 +07:00
2026-10-12 11:02:32 +07:00
2026-10-22 04:40:10 +07:00
2026-10-22 00:10:57 +07:00
2026-10-22 06:40:27 +07:00
2026-10-22 06:40:27 +07:00
2026-10-17 13:49:48 +07:00
2026-10-16 15:27:54 +07:00
2026-10-21 15:42:35 +07:00
2026-10-22 03:08:30 +03:00
2026-10-20 07:23:40 +07:00
2026-10-16 02:26:04 +07:00
2026-10-18 12:34:40 +07:00
2026-10-20 02:06:54 +07:00
2026-10-20 03:41:17 +07:00
2026-10-11 01:45:18 +07:00
2026-10-22 00:10:57 +07:00
2026-10-18 01:21:24 +07:00
2026-10-22 08:24:09 +07:00
2026-10-12 11:02:32 +07:00
2026-10-18 23:50:57 +07:00
2026-10-12 11:02:32 +07:00
2026-10-17 16:38:43 +07:00
2026-10-14 08:01:50 +07:00
2026-10-22 07:03:54 +07:00
2026-10-22 02:58:48 +07:00
2026-10-17 13:52:06 +07:00
2026-10-21 23:32:26 +07:00
2026-10-21 23:14:34 +07:00
2026-10-10 09:07:53 +07:00
2026-10-17 17:13:03 +07:00
2026-10-22 06:40:27 +07:00
2026-10-22 06:40:27 +07:00
2026-10-21 23:38:03 +07:00
2026-10-16 04:44:50 +07:00
2026-10-17 16:38:42 +07:00
2026-10-14 08:11:02 +07:00
2026-10-16 06:16:35 +07:00
2026-10-17 15:14:43 +07:00
2026-10-17 13:20:23 +07:00
2026-10-21 16:46:19 +07:00
2026-10-22 05:20:10 +07:00
2026-10-16 06:16:35 +07:00
2026-10-21 15:42:35 +07:00
2026-10-21 23:38:03 +07:00
2026-10-22 06:13:32 +07:00
2026-10-21 16:46:19 +07:00
2026-10-21 15:42:35 +07:00
2026-10-14 10:13:45 +07:00
2026-10-21 17:11:08 +07:00
2026-10-17 16:38:42 +07:00
2026-10-13 18:17:02 +02:00
2026-10-22 00:10:57 +07:00
2026-10-22 00:10:57 +07:00
2026-10-22 06:40:27 +07:00
2026-10-19 00:37:55 +07:00
2026-10-17 17:13:02 +07:00
2026-10-21 16:46:13 +07:00
2026-10-18 12:36:25 +07:00
2026-10-18 23:48:57 +07:00
2026-10-21 17:11:08 +07:00
2026-10-17 15:14:42 +07:00
2026-10-22 17:20:48 +07:00
2026-10-22 00:10:57 +07:00
2026-10-22 16:06:54 +07:00
2026-10-18 01:21:25 +07:00
2026-10-22 06:40:27 +07:00
2026-10-22 00:01:36 +07:00
2026-10-12 08:45:22 +07:00
2026-10-18 19:02:44 +07:00
2026-10-12 11:02:32 +07:00
2026-10-16 02:21:46 +07:00
2026-10-17 17:13:03 +07:00
2026-10-22 00:10:57 +07:00
2026-10-18 12:34:29 +07:00
2026-10-12 06:59:49 +07:00
2026-10-22 01:25:50 +07:00
2026-10-21 23:38:03 +07:00
2026-10-21 17:11:08 +07:00
2026-10-17 13:49:49 +07:00
2026-10-14 05:11:55 +07:00
2026-10-17 13:49:49 +07:00
2026-10-16 15:27:54 +07:00
2026-10-21 23:38:03 +07:00
2026-10-17 17:13:03 +07:00
2026-10-22 01:15:09 +07:00
2026-10-17 04:09:12 -07:00
2026-10-22 02:01:57 +07:00
2026-10-21 23:14:27 +07:00
2026-10-11 05:30:24 +07:00
2026-10-17 14:43:12 +07:00
2026-10-12 11:02:32 +07:00
2026-10-13 13:36:41 +07:00
2026-10-16 04:44:50 +07:00
2026-10-21 16:55:16 +07:00
2026-10-14 13:49:59 +07:00
2026-10-21 23:38:03 +07:00
2026-10-18 01:24:34 +07:00
2026-10-17 15:14:42 +07:00
2026-10-16 15:27:54 +07:00
2026-10-12 11:02:32 +07:00
2026-10-21 23:38:03 +07:00
2026-10-21 23:38:03 +07:00
2026-10-22 06:40:27 +07:00
2026-10-14 08:01:50 +07:00
2026-10-22 11:17:31 +07:00
2026-10-17 16:38:43 +07:00
2026-10-12 11:02:32 +07:00
2026-10-22 06:40:27 +07:00
2026-10-21 23:32:26 +07:00
2026-10-12 08:16:07 +07:00
2026-10-21 23:38:03 +07:00
2026-10-22 00:12:39 +07:00
2026-10-18 01:32:01 +07:00
2026-10-16 02:56:35 +07:00
2026-10-20 07:23:49 +07:00
2026-10-22 08:24:09 +07:00
2026-10-22 02:58:48 +07:00