diff --git a/src/script/cpp_api/s_security.cpp b/src/script/cpp_api/s_security.cpp
index 0e64c4c61e3720c82ea2c5e51da7d549de5b8523..3a8f724fe0024a77f06e5d2dd3c63847d8123793 100644
--- a/src/script/cpp_api/s_security.cpp
+++ b/src/script/cpp_api/s_security.cpp
@@ -323,9 +323,12 @@ bool ScriptApiSecurity::safeLoadFile(lua_State *L, const char *path)
 	}
 
 	if (luaL_loadbuffer(L, code, size, chunk_name)) {
+		delete [] code;
 		return false;
 	}
 
+	delete [] code;
+
 	if (path) {
 		delete [] chunk_name;
 	}