godot/core
Fabio Alessandrelli ccbd810934
[Net] Fix Marshalls infinite recursion crash.
Variants like dictionaries and arrays can have cyclic references, which
caused `encode_variant` to run an infinite recursion.
Instead of keeping a stack and looking for cyclic references which would
make serialization slower, this commit adds a `MAX_RECURSION_DEPTH`
constant to Variant, and have `encode_variant` keep track of the current
recursion depth, bailing when it's too high since this likely means a
cyclic reference has been encountered.

(cherry picked from commit 324636473a)
2021-08-03 09:33:24 +02:00
..
bind Merge pull request #48390 from lawnjelly/delta_smooth 2021-07-22 12:43:39 +02:00
crypto [Crypto] Delete mbedtls ctx in deconstructor. 2021-07-06 11:10:47 +02:00
io [Net] Fix Marshalls infinite recursion crash. 2021-08-03 09:33:24 +02:00
math Astar::get_available_point_id Start from 0 2021-08-03 08:45:27 +02:00
os Allow checking for exact matches with Action events. 2021-07-30 15:35:39 +02:00
SCsub Fixed build with SCRIPT_AES256_ENCRYPTION_KEY set 2021-05-14 15:15:25 +02:00
array.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
array.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
bitfield_dynamic.cpp Portal occlusion culling 2021-07-14 11:43:23 +01:00
bitfield_dynamic.h Portal occlusion culling 2021-07-14 11:43:23 +01:00
class_db.cpp Remove duplicate ERR_PRINTS macro 2021-06-16 11:56:25 +01:00
class_db.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
color.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
color.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
color_names.inc Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
command_queue_mt.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
command_queue_mt.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
compressed_translation.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
compressed_translation.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
core_builders.py SCons: Generate header with info on which modules are enabled 2021-07-14 23:09:47 +02:00
core_string_names.cpp Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
core_string_names.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
cowdata.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
dictionary.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
dictionary.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
engine.cpp Add Engine.print_error_messages property to disable printing errors 2021-07-20 13:58:07 +03:00
engine.h Add Engine.print_error_messages property to disable printing errors 2021-07-20 13:58:07 +03:00
error_list.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
error_macros.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
error_macros.h Portal occlusion culling 2021-07-14 11:43:23 +01:00
func_ref.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
func_ref.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
global_constants.cpp Fix game controllers ignoring the last listed button 2021-06-03 15:45:05 +01:00
global_constants.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
hash_map.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
hashfuncs.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
image.cpp Fixes 50428, added missing checks for image lock 2021-07-14 21:49:23 +05:30
image.h Validate image formats, check if resize_to_po2 failed 2021-06-29 14:02:23 +02:00
input_map.cpp Allow checking for exact matches with Action events. 2021-07-30 15:35:39 +02:00
input_map.h Allow checking for exact matches with Action events. 2021-07-30 15:35:39 +02:00
int_types.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
list.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
local_vector.h LocalVector: Don't error if `from` >= `count` 2021-07-06 11:10:44 +02:00
make_binders.py SCons: Format buildsystem files with psf/black 2020-06-10 15:30:52 +02:00
map.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
message_queue.cpp Remove duplicate ERR_PRINTS macro 2021-06-16 11:56:25 +01:00
message_queue.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
method_bind.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
method_bind.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
method_ptrcall.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
node_path.cpp Optimize NodePath update when renaming or deleting nodes in the editor 2021-07-09 11:43:05 -07:00
node_path.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
oa_hash_map.h Style: Enforce use of bool literals instead of integers 2021-05-04 16:39:13 +02:00
object.cpp Remove duplicate ERR_PRINTS macro 2021-06-16 11:56:25 +01:00
object.h Portal occlusion culling 2021-07-14 11:43:23 +01:00
object_id.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
object_rc.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
ordered_hash_map.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
packed_data_container.cpp Merge pull request #48355 from MaxStgs/3.x 2021-05-05 15:22:40 +02:00
packed_data_container.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
paged_allocator.h Replace QuickHull with Bullet's convex hull computer. 2021-05-22 08:16:43 +02:00
pair.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
path_remap.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
path_remap.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
pool_allocator.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
pool_allocator.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
pool_vector.cpp Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
pool_vector.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
pooled_list.h Portal occlusion culling 2021-07-14 11:43:23 +01:00
print_string.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
print_string.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
project_settings.cpp [3.x] Allow reading shaders from .gdshader files 2021-07-19 23:34:23 -04:00
project_settings.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
ref_ptr.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
ref_ptr.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
reference.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
reference.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
register_core_types.cpp Backport HMac crypto to 3.x 2021-05-20 13:29:38 +03:00
register_core_types.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
resource.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
resource.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
rid.cpp Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
rid.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
ring_buffer.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
safe_refcount.cpp Improve robustness of atomics 2021-02-19 11:48:30 +01:00
safe_refcount.h Style: Set clang-format Standard to c++14 2021-05-04 14:45:15 +02:00
script_debugger_local.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
script_debugger_local.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
script_language.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
script_language.h Highlight control flow keywords with a different color 2021-05-25 00:31:39 +02:00
self_list.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
set.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
simple_type.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
sort_array.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
string_buffer.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
string_builder.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
string_builder.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
string_name.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
string_name.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
translation.cpp Fix missing locale names 2021-07-20 13:05:13 +02:00
translation.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
type_info.h Remove duplicate ERR_PRINTS macro 2021-06-16 11:56:25 +01:00
typedefs.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
ucaps.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
undo_redo.cpp Fix UndoRedo crash when clearing history 2021-07-24 00:51:42 +02:00
undo_redo.h Extend UndoRedo handling of Resource to every Reference 2021-05-09 09:29:45 +02:00
ustring.cpp String::format leave passed values untouched 2021-07-13 10:20:03 +02:00
ustring.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
variant.cpp Fix json dump and print of circular structure 2021-06-17 12:47:53 +02:00
variant.h [Net] Fix Marshalls infinite recursion crash. 2021-08-03 09:33:24 +02:00
variant_call.cpp Added signed_angle_to for Vector3 2021-07-09 12:49:12 +02:00
variant_op.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
variant_parser.cpp Fix Variant tags parsing. 2021-07-06 11:24:06 +02:00
variant_parser.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
vector.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
version.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
vmap.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
vset.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00