Fix seg fault if popping from empty stack (L-system trees)
authorCraig Robbins <kde.psych@gmail.com>
Thu, 7 Aug 2014 05:39:12 +0000 (15:39 +1000)
committerRealBadAngel <maciej.kasatkin@o2.pl>
Sat, 23 Aug 2014 04:40:27 +0000 (06:40 +0200)
commitf33d31693ed2ab7d2a29320181b6aba2c12f76d3
treeb440bfeb24c4beddd5a73ea7ab4f9c4452733a39
parent996ea60642c5d78fc915573af0641d78bc7e2d49
Fix seg fault if popping from empty stack (L-system trees)

See: https://github.com/minetest/minetest/issues/1525

Background
Wuzzy2: If you attempt to spawn a L-system tree with minetest.spawn_tree, you can make Minetest crash if it is attempted to pop an empty stack.

ShadowNinja: This shouldn't cause a segmentation fault, but it should throw a Lua error

Commit Description
This commit throws a Lua error instead of causing a segmentation fault. The server will still "crash" but will include a Lua backtrace.

L-Systems fix randomness
Unless a random seed is provided (via Lua treedef) seed the PRNG with a different seed for each tree
Resolves: https://github.com/minetest/minetest/issues/1469

Fix l-system crash when treedef random_level not set by Lua
doc/lua_api.txt
src/script/lua_api/l_env.cpp
src/treegen.cpp
src/treegen.h