graphite2: crash around null in [@graphite2::SlotMap::collectGarbage] Pass.cpp:654

RESOLVED FIXED

Status

()

Core
Graphics: Text
--
critical
RESOLVED FIXED
2 years ago
a year ago

People

(Reporter: tsmith, Unassigned)

Tracking

(Blocks: 1 bug, 4 keywords)

unspecified
crash, csectype-nullptr, sec-low, testcase
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox45 fixed, firefox46 fixed, firefox47 fixed, firefox-esr3845+ fixed)

Details

(Whiteboard: [sg:dos][adv-main45-][adv-esr38.7-])

Attachments

(2 attachments)

(Reporter)

Description

2 years ago
Created attachment 8720886 [details]
test_case.ttf

This was found while fuzzing graphite2 1.3.5 (and is in 1.3.4)

==33452==ERROR: AddressSanitizer: SEGV on unknown address 0x00000000006c (pc 0x7fe37f2b0997 bp 0x7fffd1605370 sp 0x7fffd1605260 T0)
    #0 0x7fe37f2b0996 in graphite2::Slot::isDeleted() const /home/user/code/graphite/src/inc/Slot.h:101:38
    #1 0x7fe37f2b0996 in graphite2::SlotMap::collectGarbage(graphite2::Slot*&) /home/user/code/graphite/src/Pass.cpp:654
    #2 0x7fe37f2b0996 in graphite2::Pass::findNDoRule(graphite2::Slot*&, graphite2::vm::Machine&, graphite2::FiniteStateMachine&) const /home/user/code/graphite/src/Pass.cpp:544
    #3 0x7fe37f2aec26 in graphite2::Pass::runGraphite(graphite2::vm::Machine&, graphite2::FiniteStateMachine&, bool) const /home/user/code/graphite/src/Pass.cpp:412:13
    #4 0x7fe37f2ca28a in graphite2::Silf::runGraphite(graphite2::Segment*, unsigned char, unsigned char, int) const /home/user/code/graphite/src/Silf.cpp:423:21
    #5 0x7fe37f288d38 in graphite2::Face::runGraphite(graphite2::Segment*, graphite2::Silf const*) const /home/user/code/graphite/src/Face.cpp:180:16
    #6 0x7fe37f257c5e in graphite2::Segment::runGraphite() /home/user/code/graphite/src/inc/Segment.h:97:45
    #7 0x7fe37f257c5e in (anonymous namespace)::makeAndInitialize(graphite2::Font const*, graphite2::Face const*, unsigned int, graphite2::FeatureVal const*, gr_encform, void const*, unsigned long, int) /home/user/code/graphite/src/gr_segment.cpp:46
    #8 0x7fe37f257c5e in gr_make_seg /home/user/code/graphite/src/gr_segment.cpp:105
    #9 0x4e76e3 in Parameters::testFileFont() const /home/user/code/graphite/gr2fonttest/gr2FontTest.cpp:678:20
    #10 0x4e87bc in main /home/user/code/graphite/gr2fonttest/gr2FontTest.cpp:779:12
    #11 0x7fe37ee9cec4 in __libc_start_main /build/eglibc-3GlaMS/eglibc-2.19/csu/libc-start.c:287
    #12 0x41a545 in _start (/home/user/Desktop/graphite/gr2fonttest+0x41a545)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/user/code/graphite/src/inc/Slot.h:101:38 in graphite2::Slot::isDeleted() const
(Reporter)

Comment 1

2 years ago
Created attachment 8720888 [details]
test_string.txt

Comment 2

2 years ago
fixed? upstream in c8450dbaa160be5c939d9abb5cfe01284e22b45f
(Reporter)

Comment 3

2 years ago
Verified with graphite revision c8450dbaa160be5c939d9abb5cfe01284e22b45f
(Reporter)

Updated

2 years ago
Status: NEW → RESOLVED
Last Resolved: 2 years ago
status-firefox45: --- → fixed
status-firefox46: --- → fixed
status-firefox47: --- → fixed
status-firefox-esr38: --- → fixed
Depends on: 1252311
Resolution: --- → FIXED
Group: gfx-core-security → core-security-release
tracking-firefox-esr38: --- → 45+
Whiteboard: [sg:dos] → [sg:dos][adv-main45+][adv-esr38.7+]
Whiteboard: [sg:dos][adv-main45+][adv-esr38.7+] → [sg:dos][adv-main45-][adv-esr38.7-]
Group: core-security-release
You need to log in before you can comment on or make changes to this bug.