-
Federico Mena Quintero authored
A pathological SVG file can do this: <svg> <defs> <rect id="foo" .../> <g id="foo1"> <use xlink:href="#foo"/> ... repeat 10 times ... </g> <g id="foo2"> <use xlink:href="#foo1"/> ... repeat 10 times ... </g> <g id="foo3"> <use xlink:href="#foo2"/> ... repeat 10 times ... </g> ... etc ... </defs> <use xlink:href="#foo17"/> </svg> This would cause about 10^17 objects to be rendered. While this does not exhaust memory (the objects are not instanced in memory), it would take a really long time to render that many objects. So, we now have a limit on up to 500,000 objects instanced through <use>. We can tweak this limit later, or the way in which it is computed; the point is that we can now detect this situation and propagate an error upstream. #323
a9ca82a5