Closed Bug 3321 Opened 26 years ago Closed 26 years ago

purify reports UMR in PaintUnicode

Categories

(Core :: Layout, defect, P2)

x86
Windows NT
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: buster, Assigned: mjudge)

References

()

Details

(Whiteboard: Pending 3/15 request that Assigned or Reporter verify bug if it needs looking at Purify)

I opened sample 0 and sample 3 in purify.  Here is the line of code:
ip[mContentLength] = ip[mContentLength-1]+1; //must set up last one for
selection beyond edge

Here is (some of) the purify output:

[W] UMR: Uninitialized memory read in
TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int) {23 occurrences}
        Reading 4 bytes from 0x0012e0f8 (4 bytes at 0x0012e0f8 uninitialized)
        Address 0x0012e0f8 points into a thread's stack
        Address 0x0012e0f8 is the local variable 'indicies' in
TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int)
        Thread ID: 0xa1
        Error location

TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int) [nsTextFrame.cpp:814]
            TextFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsTextFrame.cpp:544]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsBlockFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4374]
            nsBlockFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4326]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsBlockFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4374]
            nsBlockFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4326]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsBlockFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4374]
[W] UMR: Uninitialized memory read in
TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int) {9 occurrences}
        Reading 4 bytes from 0x0012e1c8 (4 bytes at 0x0012e1c8 uninitialized)
        Address 0x0012e1c8 points into a thread's stack
        Address 0x0012e1c8 is 4 bytes past the start of local variable
'indicies' in
TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int)
        Thread ID: 0xa1
        Error location

TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int) [nsTextFrame.cpp:814]
            TextFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsTextFrame.cpp:544]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsBlockFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4374]
            nsBlockFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4326]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsBlockFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4374]
            nsBlockFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4326]
            nsAreaFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsAreaFrame.cpp:223]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]
[W] UMR: Uninitialized memory read in
TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int) {12 occurrences}
        Reading 4 bytes from 0x0012e040 (4 bytes at 0x0012e040 uninitialized)
        Address 0x0012e040 points into a thread's stack
        Address 0x0012e040 is 12 bytes past the start of local variable
'indicies' in
TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int)
        Thread ID: 0xa1
        Error location

TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int) [nsTextFrame.cpp:814]
            TextFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsTextFrame.cpp:544]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsContainerFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsContainerFrame.cpp:216]

nsHTMLContainerFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsHTMLContainerFrame.cpp:78]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsBlockFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4374]
            nsBlockFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4326]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsBlockFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4374]
[W] UMR: Uninitialized memory read in
TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int) {7 occurrences}
        Reading 4 bytes from 0x0012df7c (4 bytes at 0x0012df7c uninitialized)
        Address 0x0012df7c points into a thread's stack
        Address 0x0012df7c is 12 bytes past the start of local variable
'indicies' in
TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int)
        Thread ID: 0xa1
        Error location

TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int) [nsTextFrame.cpp:814]
            TextFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsTextFrame.cpp:544]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsContainerFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsContainerFrame.cpp:216]

nsHTMLContainerFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsHTMLContainerFrame.cpp:78]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsContainerFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsContainerFrame.cpp:216]

nsHTMLContainerFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsHTMLContainerFrame.cpp:78]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsBlockFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4374]
[W] UMR: Uninitialized memory read in
TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int) {12 occurrences}
        Reading 4 bytes from 0x0012dee4 (4 bytes at 0x0012dee4 uninitialized)
        Address 0x0012dee4 points into a thread's stack
        Address 0x0012dee4 is 56 bytes past the start of local variable
'indicies' in
TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int)
        Thread ID: 0xa1
        Error location

TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int) [nsTextFrame.cpp:814]
            TextFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsTextFrame.cpp:544]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsContainerFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsContainerFrame.cpp:216]

nsHTMLContainerFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsHTMLContainerFrame.cpp:78]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsContainerFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsContainerFrame.cpp:216]

nsHTMLContainerFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsHTMLContainerFrame.cpp:78]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsContainerFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsContainerFrame.cpp:216]

[W] UMR: Uninitialized memory read in
TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int) {9 occurrences}
        Reading 4 bytes from 0x0012d810 (4 bytes at 0x0012d810 uninitialized)
        Address 0x0012d810 points into a thread's stack
        Address 0x0012d810 is 24 bytes past the start of local variable
'indicies' in
TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int)
        Thread ID: 0xa1
        Error location

TextFrame::PaintUnicodeText(nsIPresContext&,nsIRenderingContext&,nsIStyleContext
*,TextStyle::TextFrame&,int,int) [nsTextFrame.cpp:814]
            TextFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsTextFrame.cpp:544]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsBlockFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4374]
            nsBlockFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsBlockFrame.cpp:4326]
            nsAreaFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsAreaFrame.cpp:223]

nsContainerFrame::PaintChild(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsIFrame *,nsFramePaintLayer) [nsContainerFrame.cpp:276]

nsContainerFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsContainerFrame.cpp:216]
            nsTableCellFrame::Paint(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsTableCellFrame.cpp:210]

nsTableRowFrame::PaintChildren(nsIPresContext&,nsIRenderingContext&,nsRect
const&,nsFramePaintLayer) [nsTableRowFrame.cpp:347]
*** Bug 3320 has been marked as a duplicate of this bug. ***
Assignee: kipp → mjudge
mike was the last to whack that code so I'm passing the buck to him.
Status: NEW → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
fixed, is this the best you can do? I scoff at your attempts to thwart me! ;)
Whiteboard: Request that Assigned to verify bug if it needs looking at Purify
mjudge@netscape.com: Does this bug need to be verified by looking at Purify? If
so, could you please verifiy it as fixed? Thank you.
Whiteboard: Request that Assigned to verify bug if it needs looking at Purify → Pending 3/15 request that Assigned or Reporter verify bug if it needs looking at Purify
I verified this fix using Purify.  The Purify report no longer mentions the UMR
in this code.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.