diff options
author | Rubidium <rubidium@openttd.org> | 2021-05-16 07:33:32 +0200 |
---|---|---|
committer | rubidium42 <rubidium42@users.noreply.github.com> | 2021-05-16 10:07:38 +0200 |
commit | 5c01f9ea525616b432968df845a90da1d888631f (patch) | |
tree | 8a2e38439e26b43cd01fbca231184485c7297608 /src/network | |
parent | e66e25ff71d67975e4c5ba0df569339270cfafe2 (diff) | |
download | openttd-5c01f9ea525616b432968df845a90da1d888631f.tar.xz |
Fix #9267, 47a99bb: [Squirrel] Heap use after free
Due to 47a99bb the order of elements in the garbage collection chain has
changed causing the class to be finalised before the instances of that class.
Since the instance's array of member values depends on the size of the values
in the class, the class finalisation resetting that size to 0 causes not all
finalisations to run, which subsequently causes a heap use after free. So,
just set the SQObjectPtrs to 'null' during the finalisation of the SQClass
so the SQInstance can release all instance variables during its finalisation.
Diffstat (limited to 'src/network')
0 files changed, 0 insertions, 0 deletions