From 4a11dd28ec9b7a0344c21a6fc4c3ab80c429eb50 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Tue, 9 Jun 2026 23:51:26 +0300 Subject: [PATCH] fix segfault on world.get_chunk_data if no world open --- src/logic/scripting/lua/libs/libworld.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/logic/scripting/lua/libs/libworld.cpp b/src/logic/scripting/lua/libs/libworld.cpp index c2d6be43c..3b3b4af59 100644 --- a/src/logic/scripting/lua/libs/libworld.cpp +++ b/src/logic/scripting/lua/libs/libworld.cpp @@ -129,6 +129,9 @@ static int l_get_generator(lua::State* L) { } static int l_get_chunk_data(lua::State* L) { + if (level == nullptr) { + throw std::runtime_error("world is not open"); + } int x = static_cast(lua::tointeger(L, 1)); int z = static_cast(lua::tointeger(L, 2)); const auto& chunk = level->chunks->getChunk(x, z); @@ -175,7 +178,7 @@ static void integrate_chunk_client(Chunk& chunk) { static int l_set_chunk_data(lua::State* L) { if (level == nullptr) { - throw std::runtime_error("no open world"); + throw std::runtime_error("world is not open"); } int x = static_cast(lua::tointeger(L, 1)); @@ -201,7 +204,7 @@ static int l_set_chunk_data(lua::State* L) { static int l_save_chunk_data(lua::State* L) { if (level == nullptr) { - throw std::runtime_error("no open world"); + throw std::runtime_error("world is not open"); } int x = static_cast(lua::tointeger(L, 1));