diff options
author | Christopher Head <chead@chead.ca> | 2018-01-13 11:27:01 -0800 |
---|---|---|
committer | Vitaliy <silverunicorn2011@yandex.ru> | 2018-01-13 22:27:00 +0300 |
commit | 2b096f050d8ef46ec0a669ea4e125ae79745090e (patch) | |
tree | 003bb80df11d01c7eda1b0146d13d5e82bd6be30 /mesecons_pistons/doc/piston/recipe.png | |
parent | 993fdedd8ccc21610efee00a08e102b38aa34b7e (diff) | |
download | mesecons-2b096f050d8ef46ec0a669ea4e125ae79745090e.tar mesecons-2b096f050d8ef46ec0a669ea4e125ae79745090e.tar.gz mesecons-2b096f050d8ef46ec0a669ea4e125ae79745090e.tar.bz2 mesecons-2b096f050d8ef46ec0a669ea4e125ae79745090e.tar.xz mesecons-2b096f050d8ef46ec0a669ea4e125ae79745090e.zip |
Limit and optimize digiline_send (#379)
* Close vulnerability and optimize digiline_send
`digiline_send` as it previously existed was vulnerable to a
time-of-check-to-time-of-use vulnerability in which a table could be
sent, size-checked, and then modified after the send but before
delivery. This would allow larger tables to be sent. It was also slow
because it called `minetest.serialize`. Fix both of these by
implementing custom message cleanup logic which simultaneously computes
the message’s cost.
* Clean up interaction with Digilines
Use `minetest.global_exists` to avoid an undefined global variable
warning when operating a Luacontroller with Digilines not available. Use
the new `digilines` table in preference to the old `digiline` table.
* Copy received messages
When a Digiline message is received at a Luacontroller, copy it so that
local modifications made by the Luacontroller code will not modify
copies of the table that are being passed to other nodes on the Digiline
network.
Diffstat (limited to 'mesecons_pistons/doc/piston/recipe.png')
0 files changed, 0 insertions, 0 deletions