Browse Source

[cpp] Closes #2773, infinite loop in spine_skin_get_entries and subsequent freeing of name strings.

Mario Zechner 5 tháng trước cách đây
mục cha
commit
febbbbcd17
1 tập tin đã thay đổi với 4 bổ sung1 xóa
  1. 4 1
      spine-cpp/spine-cpp-lite/spine-cpp-lite.cpp

+ 4 - 1
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__);