From 6f141ea7405c85ad59e784924bdf0f42dd8d82b0 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Thu, 16 Mar 2023 10:59:10 +0800 Subject: [PATCH] FIX: crash when open 3mf file the volume type is unreasonable, causing the array to go out of bounds Change-Id: I316b05f277f894b1fd32cda3eca29340d988e01e --- src/slic3r/GUI/ObjectDataViewModel.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/ObjectDataViewModel.cpp b/src/slic3r/GUI/ObjectDataViewModel.cpp index 76d9c616bd..936de904c3 100644 --- a/src/slic3r/GUI/ObjectDataViewModel.cpp +++ b/src/slic3r/GUI/ObjectDataViewModel.cpp @@ -495,8 +495,9 @@ wxDataViewItem ObjectDataViewModel::AddOutsidePlate(bool refresh) void ObjectDataViewModel::UpdateBitmapForNode(ObjectDataViewModelNode *node) { + bool is_volume_node = node->GetType() & itVolume; int vol_type = static_cast(node->GetVolumeType()); - bool is_volume_node = vol_type >= 0; + is_volume_node &= (vol_type >= int(ModelVolumeType::MODEL_PART) && vol_type <= int(ModelVolumeType::SUPPORT_ENFORCER)); if (!node->has_warning_icon() && !node->has_lock()) { node->SetBitmap(is_volume_node ? m_volume_bmps.at(vol_type) : m_empty_bmp);