-
Notifications
You must be signed in to change notification settings - Fork 35
Open
Description
This repro will completely hang the library until it crashes:
const maxRectsPacker = new MaxRectsPacker(512, 512, {
padding: 1,
// exclusiveTag: false,
});
const rects2 = [
{
width: 512,
height: 512,
},
{
width: 512,
height: 512,
},
];
for (const rect of rects2) {
maxRectsPacker.add(rect);
}
As far as I understand, this should set oversized flags but bail out. Instead it just loops forever doing some sort of placement/freeing procedure.
This makes the library dangerous to use in any situation where the input sizes can be user-controlled, since it risks total application hang.
If you pause you can get a sense of the infinite loop.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
