After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 738169 - librsvg hang
librsvg hang
Status: RESOLVED FIXED
Product: librsvg
Classification: Core
Component: general
2.36.x
Other Linux
: Normal normal
: ---
Assigned To: librsvg maintainers
librsvg maintainers
Depends on:
Blocks:
 
 
Reported: 2014-10-08 18:04 UTC by Atte Kettunen
Modified: 2015-09-03 17:37 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Repro-file package (10.00 KB, application/x-tar)
2014-10-08 18:04 UTC, Atte Kettunen
  Details
Handle cycles in the references for paint servers (17.00 KB, patch)
2015-02-06 18:07 UTC, Federico Mena Quintero
none Details | Review

Description Atte Kettunen 2014-10-08 18:04:22 UTC
Created attachment 288065 [details]
Repro-file package

Tested on:

OS: Ubuntu 12.04

librsvg: ASAN build version 2.36.1

The attached repro-file causes rsvg-convert, rsvg-view-3 and nautilus (svg preview enabled), to hang indefinitely.
Comment 1 Federico Mena Quintero 2015-02-06 17:53:29 UTC
The SVG has these:

        <linearGradient id="cycle2" xlink:href="#cycle1">
            <stop offset="0" stop-color="red" />
            <stop offset="1" stop-color="orange" />
        </linearGradient>

        <linearGradient id="cycle1" xlink:href="#cycle2"/>

And the functions that resolve a chain of gradient properties end up in an infinite loop, since the gradients reference each other.  I'll fix this.
Comment 2 Federico Mena Quintero 2015-02-06 18:07:29 UTC
Created attachment 296299 [details] [review]
Handle cycles in the references for paint servers

This fixes the bug.
Comment 3 Federico Mena Quintero 2015-02-06 18:51:00 UTC
Fixed in commit 8ee18b22ece0f869cb4e2e021c01138cbb8a0226