HanifKoh
490d134507
Harden 3MF Loading Against Malformed Plate IDs and Paint Data ( #15959 )
...
* Reject 3MF Plate IDs Below 1 Instead of Indexing Before the Plate List
The plate importer copied each plater_id from model_settings.config into the
1-based plate list after checking only the upper bound, so plater_id="0"
wrote to plate_data_list[-1] and crashed on load. Both copy sites now reject
ids below 1 with the same "invalid plate index" error already used for ids
past the end.
* Drop Malformed 3MF Paint Data Instead of Reading Past the Bitstream
Painted facets are decoded from a bitstream a nibble at a time with no bound
check, so a truncated or corrupt paint string in a 3MF (for example split
codes with no children behind them) read past the end and crashed on load and
slice. A one- or two-side split naming side 3 also indexed past the triangle's
vertices.
Every nibble read now goes through a bounds-checked reader. Loading validates
each triangle's tree and drops a malformed one with a warning, so the stored
data, used extruder states and later decoding all agree. deserialize() also
unwinds and clears any triangle whose tree is incomplete or malformed, and
has_facets() stops at a truncated triangle. Valid streams decode unchanged.
2026-09-29 02:31:26 +08:00
..
2026-09-09 07:51:10 -03:00
2026-08-23 12:18:06 -03:00
2026-09-28 13:44:32 +03:00
2024-10-05 21:53:16 +03:00
2026-09-26 16:42:44 -03:00
2026-09-28 15:13:57 -03:00
2026-09-29 02:31:26 +08:00
2026-09-28 14:40:55 -03:00
2026-06-18 09:13:51 -03:00
2026-08-28 08:05:59 -03:00
2026-09-06 18:06:18 -03:00
2026-09-09 12:33:42 +08:00
2026-08-23 22:43:41 +08:00
2026-08-05 21:42:15 +08:00
2026-08-27 08:16:34 -03:00
2026-08-04 21:56:15 +08:00
2026-09-22 20:50:59 -03:00
2026-09-22 20:50:18 -03:00
2026-08-28 08:05:59 -03:00
2026-03-13 02:12:10 -07:00
2026-09-02 07:38:05 -03:00
2025-01-22 10:03:21 +08:00
2026-09-06 18:06:18 -03:00
2026-06-24 00:36:41 -03:00
2026-08-01 18:07:15 +08:00
2026-09-28 14:40:55 -03:00
2026-07-18 19:57:56 -03:00
2025-09-21 13:47:51 +08:00
2026-09-04 23:24:59 +08:00
2025-11-15 11:11:20 -05:00
2026-09-18 14:26:14 -03:00
2026-09-03 18:35:10 -03:00
2026-02-09 20:42:26 +01:00
2026-02-09 20:42:26 +01:00
2026-08-28 08:05:59 -03:00
2026-07-08 14:20:40 -03:00
2025-11-22 15:39:12 +08:00
2026-07-14 15:34:13 -03:00
2026-07-14 15:34:13 -03:00
2024-09-23 19:26:18 +08:00
2026-09-28 14:40:55 -03:00
2025-06-14 21:05:25 +08:00
2025-05-08 16:00:48 +08:00
2026-08-23 22:11:49 +08:00
2026-08-23 22:11:48 +08:00
2025-10-28 15:30:00 +08:00
2026-09-24 13:22:37 +08:00
2026-09-26 16:52:29 -03:00
2026-05-08 13:22:00 -03:00
2026-04-23 00:21:19 +08:00
2026-05-18 12:57:48 +08:00
2026-05-18 12:57:48 +08:00
2025-10-28 15:29:47 +08:00
2026-04-07 22:22:43 +08:00
2026-09-27 14:19:27 +03:00
2026-04-19 20:28:13 -03:00
2025-06-22 23:10:35 +08:00
2026-03-24 09:18:38 -07:00
2026-08-05 00:13:27 +08:00
2026-07-14 14:42:16 -03:00
2026-09-25 12:32:05 +08:00
2026-09-17 09:14:20 -03:00
2024-08-12 00:00:20 +08:00
2026-05-27 22:07:15 +08:00
2026-02-09 20:42:26 +01:00
2026-08-24 15:37:47 -03:00
2026-07-15 16:59:55 +08:00
2026-07-11 15:00:33 +08:00
2026-07-09 01:16:25 +08:00
2026-08-23 22:11:49 +08:00
2026-08-23 22:11:49 +08:00
2026-08-23 22:11:48 +08:00
2026-07-20 09:47:33 -03:00
2025-06-22 23:10:35 +08:00
2026-09-08 18:36:48 -03:00
2026-09-08 18:36:48 -03:00
2025-09-29 20:38:38 +08:00
2025-09-29 20:38:38 +08:00
2026-09-29 01:52:25 +08:00
2026-09-26 16:27:15 -03:00
2025-09-24 22:49:14 -04:00
2025-11-15 11:11:20 -05:00
2026-08-05 00:09:46 +08:00
2026-08-31 16:36:52 -03:00
2025-04-04 23:07:00 +08:00
2026-05-07 22:32:56 +08:00
2026-09-09 07:51:10 -03:00
2025-06-18 17:50:44 +08:00
2026-09-17 09:14:20 -03:00
2026-09-14 09:37:04 -03:00
2026-09-18 14:23:38 -03:00
2026-09-16 12:56:46 +08:00
2026-09-16 12:56:46 +08:00
2026-09-05 14:08:38 -03:00
2026-09-09 15:45:16 +08:00
2026-09-23 03:09:03 +08:00
2026-09-10 18:15:39 -03:00
2026-03-24 09:18:38 -07:00
2026-09-11 13:02:57 +08:00
2025-09-18 17:08:18 +08:00
2025-09-18 17:08:18 +08:00
2025-10-19 19:27:55 +08:00
2026-01-14 19:51:13 +08:00
2025-10-19 21:57:34 +08:00
2025-02-26 23:07:23 +08:00
2026-09-03 18:35:10 -03:00
2024-11-06 20:19:52 +08:00
2026-08-28 08:05:59 -03:00
2026-04-24 16:28:28 +08:00
2026-09-09 12:33:42 +08:00
2026-07-08 20:24:55 +08:00
2026-07-08 20:24:55 +08:00
2026-09-29 02:31:26 +08:00
2026-09-28 14:40:55 -03:00
2026-06-14 17:42:53 +08:00
2025-12-08 22:42:11 +08:00
2026-07-22 16:49:37 -03:00
2026-07-22 16:49:37 -03:00
2026-07-12 03:24:35 +08:00
2026-07-12 03:24:35 +08:00
2026-03-13 01:56:51 -07:00
2026-09-06 18:06:18 -03:00
2026-06-18 09:13:51 -03:00
2025-09-18 16:10:27 +08:00
2025-09-18 16:10:27 +08:00
2026-09-09 07:45:25 -03:00
2026-08-24 15:37:47 -03:00
2026-09-03 18:35:10 -03:00
2026-08-05 21:45:48 +08:00
2025-10-02 17:07:17 +08:00
2025-10-02 17:07:17 +08:00
2025-04-05 17:47:59 +08:00
2026-09-26 17:44:52 +01:00
2026-09-26 16:42:44 -03:00
2026-08-04 22:01:45 +08:00
2025-07-18 15:43:46 +08:00
2026-07-02 17:49:36 +08:00
2026-07-02 17:49:36 +08:00
2026-03-13 01:56:51 -07:00
2026-09-03 18:35:10 -03:00
2026-09-28 14:40:55 -03:00
2026-09-28 14:40:55 -03:00
2025-06-18 17:50:44 +08:00
2026-03-13 01:56:51 -07:00
2026-07-27 00:48:44 +08:00
2026-09-26 16:27:15 -03:00
2026-09-24 13:22:37 +08:00
2026-09-28 19:08:35 +08:00
2026-09-24 13:22:37 +08:00
2026-09-24 13:22:37 +08:00
2026-09-24 13:22:37 +08:00
2026-09-29 01:57:01 +08:00
2026-09-29 01:52:25 +08:00
2026-09-29 01:57:01 +08:00
2026-07-03 00:14:32 +08:00
2026-09-28 14:40:55 -03:00
2026-09-28 23:02:04 +08:00
2026-09-28 23:02:04 +08:00
2025-12-08 22:42:11 +08:00
2026-09-17 09:14:20 -03:00
2026-09-28 14:40:55 -03:00
2026-06-05 20:45:43 +08:00
2026-05-10 02:21:13 +08:00
2026-09-03 13:17:13 +08:00
2026-09-03 13:40:58 +08:00
2026-08-21 16:56:52 +08:00
2024-08-12 00:00:20 +08:00
2026-07-27 19:52:29 -03:00
2026-07-27 19:52:29 -03:00
2026-09-10 18:15:39 -03:00
2026-06-18 12:45:26 +08:00
2026-06-18 09:13:51 -03:00
2024-08-12 00:00:20 +08:00
2026-05-10 15:12:56 +08:00
2026-05-10 15:12:56 +08:00
2025-10-19 19:27:55 +08:00
2025-02-12 22:10:57 +08:00
2026-08-02 18:20:35 +08:00
2026-08-23 22:11:49 +08:00
2026-08-23 22:11:49 +08:00
2026-09-11 21:24:37 -03:00
2026-05-21 16:24:54 +08:00
2026-01-29 19:19:37 +08:00
2026-01-23 17:05:56 +08:00
2026-04-23 10:34:36 -03:00
2025-12-08 22:42:11 +08:00
2025-12-08 22:42:11 +08:00
2026-05-12 15:09:13 +08:00
2026-02-12 08:42:01 +08:00
2026-09-08 16:33:12 +08:00
2025-02-08 11:34:40 +08:00
2026-09-29 02:31:26 +08:00
2026-09-29 02:31:26 +08:00
2024-08-12 00:00:20 +08:00
2024-08-12 00:00:20 +08:00
2024-08-12 00:00:20 +08:00
2026-09-29 02:19:24 +08:00
2026-09-29 02:19:24 +08:00
2026-02-09 20:42:26 +01:00