PrusaSlicer/PrusaSlicer-2.9.0-pr13885-printconfig-segfault.patch
Benjamin Greiner 2ca808d67e - Update to version 2.9.0
* This release introduces multiple beds, scarf seams, Printables integration,
    improved support for multiple nozzle diameters, paint-on fuzzy skin and
    many more improvements and bugfixes.
  * See https://github.com/prusa3d/PrusaSlicer/releases/tag/version_2.9.0
- Added PrusaSlicer-2.9.0-pr13896-static-libs.patch
  gh#prusa3d/PrusaSlicer#13896
- Added PrusaSlicer-2.9.0-pr13885-printconfig-segfault.patch
  gh#prusa3d/PrusaSlicer#13885
- Removed PrusaSlicer-2.8.1-pr13609-fix-build.patch

OBS-URL: https://build.opensuse.org/package/show/science/PrusaSlicer?expand=0&rev=91
2025-01-05 23:56:12 +00:00

31 lines
1.3 KiB
Diff

From aaa7ab6ca2b593a4f20a08292a6fb44339029474 Mon Sep 17 00:00:00 2001
From: Ryan Heule <rmheule@yahoo.com>
Date: Wed, 1 Jan 2025 16:36:04 -0600
Subject: [PATCH] Avoid null pointer dereference for partial configuration
settings
---
src/libslic3r/PrintConfig.cpp | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp
index 907fdfb02a..efa9be9760 100644
--- a/src/libslic3r/PrintConfig.cpp
+++ b/src/libslic3r/PrintConfig.cpp
@@ -5130,7 +5130,14 @@ void DynamicPrintConfig::normalize_fdm()
}
}
- if (this->has("wipe_tower_extruder")) {
+ // This method is called repeatedly while building configuration. We may
+ // not have enough info yet to determine whether the extruder is valid;
+ // wait until we do before checking.
+ //
+ // NOTE: other extruder validation (e.g. perimeter_extruder, infill_extruder)
+ // happens elsewhere, as those settings can be modified for specific print
+ // objects or sometimes even regions of objects.
+ if (this->has("wipe_tower_extruder") && this->has("nozzle_diameter")) {
// If invalid, replace with 0.
int extruder = this->opt<ConfigOptionInt>("wipe_tower_extruder")->value;
int num_extruders = this->opt<ConfigOptionFloats>("nozzle_diameter")->size();