Cairo doesn't like coordinates that are out of range
The following SVG gets rsvg-convert to crash with an OOM.
Once again I can't attach it because it crashes the gtk filepicker.
<svg wiab-size="okticonrue">
O_ <path fill-rule="evenodd" d="M13.877.61 1.38 1.38 0 .3-.761 1.3H 8 1.2H38 10000a000 0+0000 10 00 0 2 0 0 100000 77777777777 7 777777777777777 0 0 10000004 0 00 00000 000 0 ,00 0 2 0 0 100000 7777777777777 77777777777 7777777777777 777777777777777 0 0 10000004 0 00 00000 0000 0 ,00 0 2 0 0 100000 7777777777T77 777777777777777 0 0 10000 777777777777T77 7777777777777777600004 0 00 00000 0000 0 ,00 0 2 0 0 100000 7777777777T77 c 777777777777777 0 0 10000 777777777777776 0 0 10000004 0 00 1 0000 0 00 0 0000 0 00 0 1 0000 0 20 0 0000 0 00 0 1 0 0 100000 ` .38 1.3H "></path
></svg>
thread '<unnamed>' panicked at 'Cairo error "out of memory"', /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/cairo-rs-0.8.1/src/enums.rs:274:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
==1384345== ERROR: libFuzzer: deadly signal
#0 0x5631342960e1 in __sanitizer_print_stack_trace /rustc/llvm/src/llvm-project/compiler-rt/lib/asan/asan_stack.cpp:86:3
#1 0x563134320a28 in fuzzer::PrintStackTrace() /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/libfuzzer-sys-0.3.2/libfuzzer/FuzzerUtil.cpp:205:38
#2 0x56313432c1c5 in fuzzer::Fuzzer::CrashCallback() /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/libfuzzer-sys-0.3.2/libfuzzer/FuzzerLoop.cpp:232:18
#3 0x56313432c1c5 in fuzzer::Fuzzer::CrashCallback() /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/libfuzzer-sys-0.3.2/libfuzzer/FuzzerLoop.cpp:227:6
#4 0x7f95b6e6a95f (/usr/lib/libpthread.so.0+0x1495f)
#5 0x7f95b6cb1354 in raise (/usr/lib/libc.so.6+0x3c354)
#6 0x7f95b6c9a852 in abort (/usr/lib/libc.so.6+0x25852)
#7 0x563135ec2a06 in std::sys::unix::abort_internal::h45982ef5e5d9030f /rustc/346aec9b02f3c74f3fce97fd6bda24709d220e49/src/libstd/sys/unix/mod.rs:167:14
#8 0x563135eac0c5 in std::process::abort::he8b9ec1f758176d5 /rustc/346aec9b02f3c74f3fce97fd6bda24709d220e49/src/libstd/process.rs:1623:5
#9 0x56313430df96 in libfuzzer_sys::initialize::_$u7b$$u7b$closure$u7d$$u7d$::h52ac350fbd512c03 /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/libfuzzer-sys-0.3.2/src/lib.rs:51:9
#10 0x563135eb3587 in std::panicking::rust_panic_with_hook::h8405b6301c79fb5a /rustc/346aec9b02f3c74f3fce97fd6bda24709d220e49/src/libstd/panicking.rs:530:17
#11 0x563135eb315a in rust_begin_unwind /rustc/346aec9b02f3c74f3fce97fd6bda24709d220e49/src/libstd/panicking.rs:437:5
#12 0x563135eb30ca in std::panicking::begin_panic_fmt::h0ed87aa3b2c392e6 /rustc/346aec9b02f3c74f3fce97fd6bda24709d220e49/src/libstd/panicking.rs:391:5
#13 0x563134a52d56 in cairo::enums::Status::ensure_valid::ha7e1992dac2e94af /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/cairo-rs-0.8.1/src/enums.rs:274:13
#14 0x563134a52d56 in cairo::context::Context::ensure_status::hbd3410c2366b4238 /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/cairo-rs-0.8.1/src/context.rs:158:9
#15 0x5631346cdd73 in rsvg_internals::drawing_ctx::compute_stroke_and_fill_box::h5320f23407fa11cd /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:1360:5
#16 0x5631346c0c18 in rsvg_internals::drawing_ctx::DrawingCtx::stroke_and_fill::hf2ee53ad8801d978 /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:945:20
#17 0x5631346c3615 in rsvg_internals::drawing_ctx::DrawingCtx::draw_path::_$u7b$$u7b$closure$u7d$$u7d$::h8cdf2df276fc6968 /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:1013:25
#18 0x5631346b68d8 in rsvg_internals::drawing_ctx::DrawingCtx::with_discrete_layer::_$u7b$$u7b$closure$u7d$$u7d$::h83d26ca9ed1bedb3 /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:645:21
#19 0x5631346c2956 in rsvg_internals::drawing_ctx::DrawingCtx::with_saved_cr::h1bee7dc764822b19 /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:735:19
#20 0x5631346c2956 in rsvg_internals::drawing_ctx::DrawingCtx::with_discrete_layer::h852538f4b34b77c8 /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:484:13
#21 0x5631346c2956 in rsvg_internals::drawing_ctx::DrawingCtx::draw_path::h64ab22aafd5bd4ee /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:1002:17
#22 0x5631348d5670 in rsvg_internals::shapes::Shape::draw::hac0c267ce2eb1711 /home/eijebong/code/librsvg/rsvg_internals/src/shapes.rs:46:9
#23 0x5631348d5670 in _$LT$rsvg_internals..shapes..Path$u20$as$u20$rsvg_internals..element..Draw$GT$::draw::h3a4f13a0e41360fc /home/eijebong/code/librsvg/rsvg_internals/src/shapes.rs:148:13
#24 0x56313475aecd in _$LT$rsvg_internals..element..ElementInner$LT$T$GT$$u20$as$u20$rsvg_internals..element..Draw$GT$::draw::_$u7b$$u7b$closure$u7d$$u7d$::h4eedfffc7bbb86f8 /home/eijebong/code/librsvg/rsvg_internals/src/element.rs:287:17
#25 0x5631346bb4aa in rsvg_internals::drawing_ctx::DrawingCtx::with_saved_transform::h9162c38862b851c9 /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:674:19
#26 0x56313474b278 in _$LT$rsvg_internals..element..ElementInner$LT$T$GT$$u20$as$u20$rsvg_internals..element..Draw$GT$::draw::h96b1046c72763d1e /home/eijebong/code/librsvg/rsvg_internals/src/element.rs:286:13
#27 0x563134782249 in _$LT$rsvg_internals..element..Element$u20$as$u20$rsvg_internals..element..Draw$GT$::draw::h5f5747ffc513ca5c /home/eijebong/code/librsvg/rsvg_internals/src/element.rs:612:9
#28 0x563134678edf in _$LT$rctree..Node$LT$rsvg_internals..node..NodeData$GT$$u20$as$u20$rsvg_internals..node..NodeDraw$GT$::draw::hda34b7c47cf80fc3 /home/eijebong/code/librsvg/rsvg_internals/src/node.rs:300:41
#29 0x5631346c5d68 in rsvg_internals::drawing_ctx::DrawingCtx::draw_node_from_stack::hfa827e26af0dc038 /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:1116:13
#30 0x563134679783 in _$LT$rctree..Node$LT$rsvg_internals..node..NodeData$GT$$u20$as$u20$rsvg_internals..node..NodeDraw$GT$::draw_children::he4011de787a8b915 /home/eijebong/code/librsvg/rsvg_internals/src/node.rs:315:30
#31 0x5631348ed3ab in _$LT$rsvg_internals..structure..Svg$u20$as$u20$rsvg_internals..element..Draw$GT$::draw::_$u7b$$u7b$closure$u7d$$u7d$::h1071a4550a7874c8 /home/eijebong/code/librsvg/rsvg_internals/src/structure.rs:271:13
#32 0x5631346b68d8 in rsvg_internals::drawing_ctx::DrawingCtx::with_discrete_layer::_$u7b$$u7b$closure$u7d$$u7d$::h83d26ca9ed1bedb3 /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:645:21
#33 0x5631348ec702 in rsvg_internals::drawing_ctx::DrawingCtx::with_saved_cr::h1bee7dc764822b19 /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:735:19
#34 0x5631348ec702 in rsvg_internals::drawing_ctx::DrawingCtx::with_discrete_layer::h852538f4b34b77c8 /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:484:13
#35 0x5631348ec702 in _$LT$rsvg_internals..structure..Svg$u20$as$u20$rsvg_internals..element..Draw$GT$::draw::hc0e0b2f40359dfa0 /home/eijebong/code/librsvg/rsvg_internals/src/structure.rs:267:9
#36 0x56313475b0ad in _$LT$rsvg_internals..element..ElementInner$LT$T$GT$$u20$as$u20$rsvg_internals..element..Draw$GT$::draw::_$u7b$$u7b$closure$u7d$$u7d$::h638164fe0f1f86ca /home/eijebong/code/librsvg/rsvg_internals/src/element.rs:287:17
#37 0x5631346bb4aa in rsvg_internals::drawing_ctx::DrawingCtx::with_saved_transform::h9162c38862b851c9 /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:674:19
#38 0x563134752498 in _$LT$rsvg_internals..element..ElementInner$LT$T$GT$$u20$as$u20$rsvg_internals..element..Draw$GT$::draw::hcb09be4b44a131cd /home/eijebong/code/librsvg/rsvg_internals/src/element.rs:286:13
#39 0x5631347825bd in _$LT$rsvg_internals..element..Element$u20$as$u20$rsvg_internals..element..Draw$GT$::draw::h5f5747ffc513ca5c /home/eijebong/code/librsvg/rsvg_internals/src/element.rs:612:9
#40 0x563134678edf in _$LT$rctree..Node$LT$rsvg_internals..node..NodeData$GT$$u20$as$u20$rsvg_internals..node..NodeDraw$GT$::draw::hda34b7c47cf80fc3 /home/eijebong/code/librsvg/rsvg_internals/src/node.rs:300:41
#41 0x5631346c5d68 in rsvg_internals::drawing_ctx::DrawingCtx::draw_node_from_stack::hfa827e26af0dc038 /home/eijebong/code/librsvg/rsvg_internals/src/drawing_ctx.rs:1116:13
#42 0x563134830fbd in rsvg_internals::handle::Handle::render_layer::h37bea370a539fc85 /home/eijebong/code/librsvg/rsvg_internals/src/handle.rs:263:19
#43 0x56313437b9e7 in librsvg::CairoRenderer::render_layer::h7e4d9706bce95b07 /home/eijebong/code/librsvg/librsvg_crate/src/lib.rs:548:9
#44 0x5631342fdabd in rust_fuzzer_test_input /home/eijebong/code/fuzzing/rsvg_libfuzzer/fuzz/fuzz_targets/fuzz_target_1.rs:23:9
#45 0x56313430dfc0 in __rust_try (/home/eijebong/code/fuzzing/rsvg_libfuzzer/fuzz/target/x86_64-unknown-linux-gnu/release/fuzz_target_1+0xa19fc0)
#46 0x56313430dc1f in std::panicking::try::hd9aa34a33d023081 /home/eijebong/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/panicking.rs:325:15
#47 0x56313430dc1f in std::panic::catch_unwind::he4d5234a5508066f /home/eijebong/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/panic.rs:394:14
#48 0x56313430dc1f in LLVMFuzzerTestOneInput /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/libfuzzer-sys-0.3.2/src/lib.rs:25:22
#49 0x56313432c6f4 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/libfuzzer-sys-0.3.2/libfuzzer/FuzzerLoop.cpp:553:17
#50 0x563134330980 in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool*) /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/libfuzzer-sys-0.3.2/libfuzzer/FuzzerLoop.cpp:469:18
#51 0x563134331333 in fuzzer::Fuzzer::MutateAndTestOne() /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/libfuzzer-sys-0.3.2/libfuzzer/FuzzerLoop.cpp:695:25
#52 0x56313433339f in fuzzer::Fuzzer::Loop(std::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/libfuzzer-sys-0.3.2/libfuzzer/FuzzerLoop.cpp:831:21
#53 0x56313430bb14 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/libfuzzer-sys-0.3.2/libfuzzer/FuzzerDriver.cpp:825:10
#54 0x5631342144a2 in main /home/eijebong/.cargo/registry/src/github.com-1ecc6299db9ec823/libfuzzer-sys-0.3.2/libfuzzer/FuzzerMain.cpp:19:30
#55 0x7f95b6c9c001 in __libc_start_main (/usr/lib/libc.so.6+0x27001)
#56 0x56313421464d in _start (/home/eijebong/code/fuzzing/rsvg_libfuzzer/fuzz/target/x86_64-unknown-linux-gnu/release/fuzz_target_1+0x92064d)