1. 09 Sep, 2018 4 commits
  2. 05 Sep, 2018 10 commits
  3. 03 Sep, 2018 5 commits
  4. 02 Sep, 2018 2 commits
  5. 30 Aug, 2018 4 commits
  6. 27 Aug, 2018 1 commit
  7. 23 Aug, 2018 4 commits
  8. 21 Aug, 2018 3 commits
    • Federico Mena Quintero's avatar
      gitlab#323 - Limit the number of instancings through the <use> element · a9ca82a5
      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.
      
      GNOME/librsvg#323
      a9ca82a5
    • Federico Mena Quintero's avatar
      Propagate RenderingError up to the Node.draw() methods · a762912f
      Federico Mena Quintero authored
      This touches most of the code for the "obvious" places where rendering
      errors should be propagated.  It does not yet handle all the places
      where Cairo errors could occur.
      a762912f
    • Federico Mena Quintero's avatar
      Add a RenderingError enum · d3a0d357
      Federico Mena Quintero authored
      We'll use this to propagate errors from Node.draw().
      d3a0d357
  9. 20 Aug, 2018 7 commits