Closed Bug 627295 Opened 14 years ago Closed 11 years ago

UMR [@ nsSVGGlyphFrame::PaintSVG] [@ _cairo_gstate_stroke]

Categories

(Core :: SVG, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla28
Tracking Status
firefox27 --- wontfix
firefox28 --- fixed
firefox29 --- fixed
firefox-esr24 --- wontfix
b2g18 --- wontfix
b2g-v1.2 --- wontfix
b2g-v1.3 --- fixed
b2g-v1.3T --- fixed
b2g-v1.4 --- unaffected

People

(Reporter: jruderman, Assigned: jwatt)

References

Details

(Keywords: sec-low, testcase, valgrind, Whiteboard: [adv-main28+])

Attachments

(1 file)

Attached file valgrind complaint
gfx/tests/crashtests/385228-1.svg triggers a UMR (use of uninitialized memory). Uninitialized memory caused by the stack allocation of nsSVGGlyphFrame::PaintSVG is used in _cairo_gstate_stroke.
Flags: in-testsuite+
cairo-gstate.c:1069 on my trunk build is: if (gstate->stroke_style.line_width <= 0.0) Now nsSVGGlyphFrame::PaintSVG calls SetupCairoStroke(gfx) followed by gfx->Stroke() which ends up at the line above. nsSVGGeometryFrame::SetupCairoStroke(gfx) calls nsSVGGeometryFrame::SetupCairoStroke which calls SetupCairoStrokeGeometry which calls aContext->SetLineWidth(width) (unless the width is <=0 which it appears not to be in this case according to my debugging). aContext->SetLineWidth(width) eventually ends up in _cairo_gstate_set_line_width which is: gstate->stroke_style.line_width = width; So I don't understand where the UMR is coming from. Does something different to the above sequence of events happen on Linux?
bug 889736 removed nsSVGGlyphFrame
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Assignee: nobody → jwatt
Depends on: 889736
Target Milestone: --- → mozilla28
Did this only affect Firefox 28?
Given it was filed three years ago I'd say "no". Bug 889736 isn't something we'd back-port and we don't need a band-aide patch for this low severity bug. A UMR of a stack-allocated variable /can/ be exploited, but you'd usually want it to be something like a length variable or a pointer and not a drawing dimension.
Whiteboard: [adv-main28+]
Group: core-security
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: