'assertion failed: width > 0 && height > 0' panic with fuzzed SVG
Issue Summary
rsvg-convert
exits with an assertion failed: width > 0 && height > 0
panic when processing a fuzzed SVG:
thread 'main' panicked at rsvg/src/surface_utils/shared_surface.rs:1308:9:
assertion failed: width > 0 && height > 0
Example SVG
<svg>
<use href="data:aaaaaaaaaaaaaaaaaaaa,P1 1 00#11"/>
</svg>
Librsvg Version
Platform
- Arch Linux
Additional logs
stack backtrace:
0: rust_begin_unwind
at /rustc/d18480b84fdbf1efc34f62070951334aa833d761/library/std/src/panicking.rs:645:5
1: core::panicking::panic_fmt
at /rustc/d18480b84fdbf1efc34f62070951334aa833d761/library/core/src/panicking.rs:72:14
2: core::panicking::panic
at /rustc/d18480b84fdbf1efc34f62070951334aa833d761/library/core/src/panicking.rs:144:5
3: rsvg::surface_utils::shared_surface::ImageSurface<rsvg::surface_utils::shared_surface::Exclusive>::new
at ./rsvg/src/surface_utils/shared_surface.rs:1308:9
4: rsvg::surface_utils::shared_surface::ImageSurface<rsvg::surface_utils::shared_surface::Shared>::from_image
at ./rsvg/src/surface_utils/shared_surface.rs:312:24
5: rsvg::document::load_image_with_image_rs
at ./rsvg/src/document.rs:675:19
6: rsvg::document::load_image_resource_from_bytes
at ./rsvg/src/document.rs:633:5
7: rsvg::document::load_resource
at ./rsvg/src/document.rs:588:9
8: rsvg::document::Resources::lookup_resource
at ./rsvg/src/document.rs:567:39
9: rsvg::document::Resources::get_extern_document
at ./rsvg/src/document.rs:529:24
10: rsvg::document::Resources::lookup_node
at ./rsvg/src/document.rs:508:9
11: rsvg::document::Document::lookup_node
at ./rsvg/src/document.rs:192:42
12: rsvg::document::AcquiredNodes::acquire
at ./rsvg/src/document.rs:810:20
13: rsvg::drawing_ctx::DrawingCtx::draw_from_use_node
at ./rsvg/src/drawing_ctx.rs:1711:30
14: <rsvg::structure::Use as rsvg::element::ElementTrait>::draw
at ./rsvg/src/structure.rs:440:13
15: rsvg::element::ElementData::draw
at ./rsvg/src/element.rs:559:9
16: rsvg::element::Element::draw
at ./rsvg/src/element.rs:481:13
17: <rctree::Node<rsvg::node::NodeData> as rsvg::node::NodeDraw>::draw
at ./rsvg/src/node.rs:340:33
18: rsvg::drawing_ctx::DrawingCtx::draw_node_from_stack
at ./rsvg/src/drawing_ctx.rs:1669:13
19: <rctree::Node<rsvg::node::NodeData> as rsvg::node::NodeDraw>::draw_children
at ./rsvg/src/node.rs:374:30
20: <rsvg::structure::Svg as rsvg::element::ElementTrait>::draw::{{closure}}
at ./rsvg/src/structure.rs:341:21
21: rsvg::drawing_ctx::DrawingCtx::with_discrete_layer::{{closure}}
at ./rsvg/src/drawing_ctx.rs:862:21
22: rsvg::drawing_ctx::with_saved_cr
at ./rsvg/src/drawing_ctx.rs:299:11
23: rsvg::drawing_ctx::DrawingCtx::with_discrete_layer
at ./rsvg/src/drawing_ctx.rs:689:13
24: <rsvg::structure::Svg as rsvg::element::ElementTrait>::draw
at ./rsvg/src/structure.rs:334:9
25: rsvg::element::ElementData::draw
at ./rsvg/src/element.rs:559:9
26: rsvg::element::Element::draw
at ./rsvg/src/element.rs:481:13
27: <rctree::Node<rsvg::node::NodeData> as rsvg::node::NodeDraw>::draw
at ./rsvg/src/node.rs:340:33
28: rsvg::drawing_ctx::DrawingCtx::draw_node_from_stack
at ./rsvg/src/drawing_ctx.rs:1669:13
29: rsvg::drawing_ctx::draw_tree
at ./rsvg/src/drawing_ctx.rs:281:24
30: rsvg::document::Document::geometry_for_layer
at ./rsvg/src/document.rs:338:20
31: rsvg::document::Document::get_geometry_for_layer
at ./rsvg/src/document.rs:369:13
32: rsvg::api::CairoRenderer::geometry_for_layer
at ./rsvg/src/api.rs:666:12
33: <rsvg::api::CairoRenderer as librsvg_c::sizing::LegacySize>::legacy_layer_geometry
at ./librsvg-c/src/sizing.rs:63:21
34: rsvg_convert::natural_geometry
at ./rsvg_convert/src/main.rs:791:17
35: rsvg_convert::Converter::convert
at ./rsvg_convert/src/main.rs:592:28
36: rsvg_convert::main::{{closure}}
at ./rsvg_convert/src/main.rs:1269:55
37: core::result::Result<T,E>::and_then
at /rustc/d18480b84fdbf1efc34f62070951334aa833d761/library/core/src/result.rs:1321:22
38: rsvg_convert::main
at ./rsvg_convert/src/main.rs:1269:21
39: core::ops::function::FnOnce::call_once
at /rustc/d18480b84fdbf1efc34f62070951334aa833d761/library/core/src/ops/function.rs:250:5