servo icon indicating copy to clipboard operation
servo copied to clipboard

Recursive glyph iteration causes stack overflow in css/css-fonts/crash-large-grapheme-cluster.html

Open jdm opened this issue 1 year ago • 0 comments

To reproduce: ./mach test-wpt --headless tests/wpt/tests/css/css-fonts/crash-large-grapheme-cluster.html --debugger

The backtrace is full of frames like:

    frame #15071: 0x0000000103ded688 servo`fonts::glyph::GlyphIterator::next_complex_glyph::hdcd1aef33361a89c(self=0x0000000175908ca8, entry=0x00000001758f7164, i=(__0 = 142)) at glyph.rs:749:9
    frame #15072: 0x0000000103ded548 servo`fonts::glyph::GlyphIterator::next_glyph_range::h10cedb4e4af03b65 at glyph.rs:786:13
    frame #15073: 0x0000000103ded410 servo`fonts::glyph::GlyphIterator::next_glyph_range::h10cedb4e4af03b65(self=0x0000000175908ca8) at glyph.rs:733:17
    frame #15074: 0x0000000103ded6bc servo`fonts::glyph::GlyphIterator::next_complex_glyph::hdcd1aef33361a89c [inlined] _$LT$fonts..glyph..GlyphIterator$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::h88651d828ba19d7d(self=0x0000000175908ca8) at glyph.rs:766:20
    frame #15075: 0x0000000103ded688 servo`fonts::glyph::GlyphIterator::next_complex_glyph::hdcd1aef33361a89c(self=0x0000000175908ca8, entry=0x00000001758f7364, i=(__0 = 141)) at glyph.rs:749:9
    frame #15076: 0x0000000103ded548 servo`fonts::glyph::GlyphIterator::next_glyph_range::h10cedb4e4af03b65 at glyph.rs:786:13
    frame #15077: 0x0000000103ded410 servo`fonts::glyph::GlyphIterator::next_glyph_range::h10cedb4e4af03b65(self=0x0000000175908ca8) at glyph.rs:733:17
    frame #15078: 0x0000000103ded6bc servo`fonts::glyph::GlyphIterator::next_complex_glyph::hdcd1aef33361a89c [inlined] _$LT$fonts..glyph..GlyphIterator$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::h88651d828ba19d7d(self=0x0000000175908ca8) at glyph.rs:766:20

jdm avatar Aug 08 '24 08:08 jdm