From 4ce7485cc57b0f4b9f59b7f3cc4ac718068d519b Mon Sep 17 00:00:00 2001 From: Adrian Hlavaty Date: Thu, 30 Jul 2026 00:29:28 +0200 Subject: [PATCH] Fix double free for geologist sign --- libs/s25main/nodeObjs/noDisappearingEnvObject.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/s25main/nodeObjs/noDisappearingEnvObject.cpp b/libs/s25main/nodeObjs/noDisappearingEnvObject.cpp index e31c7e603f..caa813bbd4 100644 --- a/libs/s25main/nodeObjs/noDisappearingEnvObject.cpp +++ b/libs/s25main/nodeObjs/noDisappearingEnvObject.cpp @@ -67,6 +67,8 @@ void noDisappearingEnvObject::HandleEvent(const unsigned id) { if(id) { + RTTR_Assert(world->GetNode(pos).obj == this); + world->SetNO(pos, nullptr); // endgültig vernichten GetEvMgr().AddToKillList(this); dead_event = nullptr; @@ -85,7 +87,8 @@ void noDisappearingEnvObject::HandleEvent(const unsigned id) void noDisappearingEnvObject::Destroy() { // Feld räumen, wenn ich sterbe - world->SetNO(pos, nullptr); + if(world->GetNode(pos).obj == this) + world->SetNO(pos, nullptr); // ggf Event abmelden if(dead_event)