mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-09 08:41:14 +00:00
* Fix a crash on loading a 3MF with empty project settings opt_float() dereferences what option<>() returns without checking it, and option<>() is called with create = false. Three CLI sites read printable_height that way, so a 3mf whose Metadata/project_settings.config holds an empty object takes the CLI down with a null dereference. Both models shipped in resources/handy_models are such files, so `--info` on either of them segfaults. Guard the three reads the way the neighbouring reads of extruder_clearance_height_to_rod and friends already are. All three target variables are initialised to 0 and the consumer tests for > 0, so an absent setting already had a defined meaning and nothing changes for a project that carries the setting. * Add a CLI regression test for a project with empty settings Runs --info over a copy of a shipped model whose Metadata/project_settings.config has been rewritten to an empty object, so the test keeps covering the crash no matter what settings the shipped models carry later. Verified both ways: the test passes against this branch and fails with a segmentation fault against a build without the guards. --------- Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>