From d40b426fbf9dffba8f09615fadf5f83f15670115 Mon Sep 17 00:00:00 2001 From: greats3an Date: Thu, 13 Feb 2025 11:30:09 +0800 Subject: [PATCH 1/2] C TypeTreeHelper - Safeguard against bogus Array definition --- UnityPyBoost/TypeTreeHelper.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/UnityPyBoost/TypeTreeHelper.cpp b/UnityPyBoost/TypeTreeHelper.cpp index 79b997db..a2b35cd4 100644 --- a/UnityPyBoost/TypeTreeHelper.cpp +++ b/UnityPyBoost/TypeTreeHelper.cpp @@ -834,6 +834,12 @@ PyObject *read_typetree_value(ReaderT *reader, TypeTreeNodeObject *node, TypeTre if (child && child->_data_type == NodeDataType::Array) { // array + if (PyList_GET_SIZE(node->m_Children) != 2) + { + PyErr_SetString(PyExc_ValueError, "Array node must have 2 children"); + return NULL; + } + if (child->_align) { align = true; From 081e2145b44c61e2572ae078df43d7f16e943238 Mon Sep 17 00:00:00 2001 From: greats3an Date: Thu, 13 Feb 2025 11:51:09 +0800 Subject: [PATCH 2/2] Fix typo --- UnityPyBoost/TypeTreeHelper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UnityPyBoost/TypeTreeHelper.cpp b/UnityPyBoost/TypeTreeHelper.cpp index a2b35cd4..50797a0d 100644 --- a/UnityPyBoost/TypeTreeHelper.cpp +++ b/UnityPyBoost/TypeTreeHelper.cpp @@ -834,7 +834,7 @@ PyObject *read_typetree_value(ReaderT *reader, TypeTreeNodeObject *node, TypeTre if (child && child->_data_type == NodeDataType::Array) { // array - if (PyList_GET_SIZE(node->m_Children) != 2) + if (PyList_GET_SIZE(child->m_Children) != 2) { PyErr_SetString(PyExc_ValueError, "Array node must have 2 children"); return NULL;