From febbbbcd17b3fa9e527be8d4f68ca008430fa5a1 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Thu, 17 Apr 2025 11:51:56 +0200 Subject: [PATCH] [cpp] Closes #2773, infinite loop in spine_skin_get_entries and subsequent freeing of name strings. --- spine-cpp/spine-cpp-lite/spine-cpp-lite.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spine-cpp/spine-cpp-lite/spine-cpp-lite.cpp b/spine-cpp/spine-cpp-lite/spine-cpp-lite.cpp index 2703ff7eb..f0704cafa 100644 --- a/spine-cpp/spine-cpp-lite/spine-cpp-lite.cpp +++ b/spine-cpp/spine-cpp-lite/spine-cpp-lite.cpp @@ -3007,7 +3007,10 @@ spine_skin_entries spine_skin_get_entries(spine_skin skin) { _spine_skin_entries *entries = SpineExtension::getInstance()->calloc<_spine_skin_entries>(1, __FILE__, __LINE__); { Skin::AttachmentMap::Entries mapEntries = _skin->getAttachments(); - while (mapEntries.hasNext()) entries->numEntries++; + while (mapEntries.hasNext()) { + entries->numEntries++; + mapEntries.next(); + } } { entries->entries = SpineExtension::getInstance()->calloc<_spine_skin_entry>(entries->numEntries, __FILE__, __LINE__);