Closed edusperoni closed 1 year ago
Previsouly we used if (childNodeDataId == childNodeData->nextSiblingId) { as a breaking out of the loop.
if (childNodeDataId == childNodeData->nextSiblingId) {
Usually this is fine, as it's generated A->B->C->C. The issue is that in some very specific scenarios the metadata will generate:
A->B->C->B
Which will generate an infinite loop.
Additionally, It's not uncommon to have:
A->B->C->F D->E->F
Which would generate:
A->B->C->F (break) D->E->F (break)
but since F already exists, then it would leak a MetadataTreeNode
MetadataTreeNode
Description
Previsouly we used
if (childNodeDataId == childNodeData->nextSiblingId) {
as a breaking out of the loop.Usually this is fine, as it's generated A->B->C->C. The issue is that in some very specific scenarios the metadata will generate:
A->B->C->B
Which will generate an infinite loop.
Additionally, It's not uncommon to have:
Which would generate:
but since F already exists, then it would leak a
MetadataTreeNode