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>
OrcaSlicer tests
Building, running and writing tests is documented on the wiki, under How to Test.
Two files here rather than there, because coding agents only read what is in the repository: