From c00b3656178b23a69347c9cb3a2d742429209b6d Mon Sep 17 00:00:00 2001 From: Mark Asp Date: Sun, 28 Jul 2019 08:09:51 -0500 Subject: Check for nil in cWorld:SpawnSplitExperienceOrbs binding (#4354) Adds explicit nil check for 'position' parameter to prevent crashes if invalid. Fixes #4352 --- src/Bindings/ManualBindings_World.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Bindings/ManualBindings_World.cpp b/src/Bindings/ManualBindings_World.cpp index c6716cf91..a6f6e84a9 100644 --- a/src/Bindings/ManualBindings_World.cpp +++ b/src/Bindings/ManualBindings_World.cpp @@ -890,7 +890,7 @@ static int tolua_cWorld_SpawnSplitExperienceOrbs(lua_State* tolua_S) } cWorld * self = nullptr; - Vector3d * Position; + Vector3d * Position = nullptr; int Reward; L.GetStackValues(1, self, Position, Reward); if (self == nullptr) @@ -898,6 +898,11 @@ static int tolua_cWorld_SpawnSplitExperienceOrbs(lua_State* tolua_S) tolua_error(tolua_S, "Invalid 'self' in function 'SpawnSplitExperienceOrbs'", nullptr); return 0; } + if (Position == nullptr) + { + tolua_error(tolua_S, "Error in function 'SpawnSplitExperienceOrbs' arg #2. Value must not be nil.", nullptr); + return 0; + } // Execute and push result: L.Push(self->SpawnExperienceOrb(Position->x, Position->y, Position->z, Reward)); -- cgit v1.2.3