Mineclonia/mods
Nils Dagsson Moskopp 4b91ae9522
Fix C stack overflow on Nether portal destruction
Before this patch, destroying an obsidian Nether portal frame destroyed
Nether portal nodes recursively. In Minetest binaries compiled with Lua
5.1 (i.e. without LuaJIT) this would cause a stack overflow when a huge
portal (23×23) was destroyed, crashing the server.

This patch implements Nether portal destruction using node timers. When
a portal node's timer triggers, it starts the timers of adjacent portal
nodes with the same orientation and no active timer and deletes itself.

Attempts to solve this problem using minetest.after() seemed promising,
but rubenwardy pointed out that anything relying on minetest.after() is
bound to fail if a server shuts down while portal nodes are destroyed.
2022-02-20 13:50:24 +01:00
..
CORE Fix typo in mcl_colors API documentation 2021-11-18 19:23:57 +01:00
ENTITIES Fix mob-in-boat crash in Minetest 5.5-dev 2022-01-26 18:25:08 +01:00
ENVIRONMENT Move data from deprecated files to mod.conf 2021-05-16 13:44:04 +02:00
HELP Move data from deprecated files to mod.conf 2021-05-16 13:44:04 +02:00
HUD Increase temporary message display duration to 10s 2022-02-12 17:25:09 +01:00
ITEMS Fix C stack overflow on Nether portal destruction 2022-02-20 13:50:24 +01:00
MAPGEN Add (theoretically) fireproof test structure 2022-02-06 01:19:23 +01:00
MISC Do not crash if minetest.find_nodes_in_area() lies 2021-12-20 21:38:24 +01:00
PLAYER Fix player bone positions and properties setting 2021-12-09 04:53:45 +01:00