Closed Bug 342085 Opened 18 years ago Closed 18 years ago

Crash with a fuzzed iframe [@ nsAttributeChildList::GetLength]

Categories

(Core :: DOM: Core & HTML, defect)

1.8 Branch
x86
Linux
defect
Not set
normal

Tracking

()

VERIFIED FIXED

People

(Reporter: bzbarsky, Assigned: bzbarsky)

References

()

Details

(Keywords: verified1.8.0.5, verified1.8.1)

Attachments

(1 file)

STEPS TO REPRODUCE: 1) Get a 1.8.x build or a 1.8.0.x build with any of the patches from bug 326645 applied. 2) Load the URL in the URL field. EXPECTED RESULTS: no crash ACTUAL RESULTS: (gdb) where #0 0x8904408b in ?? () #1 0xb664f3b9 in nsAttributeChildList::GetLength (this=0x83d0098, aLength=0xbfffdb80) at ../../../../mozilla/content/base/src/nsDOMAttribute.cpp:760 #2 0xb7fc4f19 in XPTC_InvokeByIndex () at ../../../../../../../mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp:69 (gdb) frame 1 #1 0xb664f3b9 in nsAttributeChildList::GetLength (this=0x83d0098, aLength=0xbfffdb80) at ../../../../mozilla/content/base/src/nsDOMAttribute.cpp:760 760 mAttribute->GetValue(value); (gdb) p *mAttribute warning: can't find linker symbol for virtual table for `nsDOMAttribute' value $1 = {<nsIDOMAttr> = {<nsIDOMNode> = {<nsISupports> = { _vptr.nsISupports = 0x200061}, <No data fields>}, <No data fields>}, <nsIDOM3Node> = {<nsISupports> = { _vptr.nsISupports = 0x720070}, <No data fields>}, <nsIAttribute> = {<nsISupports> = {_vptr.nsISupports = 0x70006f}, mAttrMap = 0x720065, mNodeInfo = {mRawPtr = 0x790074}}, mRefCnt = {mValue = 7602208}, _mOwningThread = {mThread = 0x610068}, static sInitialized = 1, mValue = {<nsSubstring> = {<nsAString_internal> = { mVTable = 0x200074, mData = 0x610068, mLength = 2097267, mFlags = 7209071}, <No data fields>}, <No data fields>}, mChild = 0x79006c, mChildList = 0x610020} The mNodeInfo and mChildList pointers are pretty clearly bogus. So's the mAttrMap pointer: (gdb) p *mAttribute.mAttrMap Cannot access memory at address 0x720065 So it seems to me that mAttribute is dead. I wonder why...
Ah, it looks like on trunk the DropReference() call in ~nsDOMAttribute was added in bug 324572. We should probably port that part over to branch.
Depends on: 326645
Attached patch FixSplinter Review
This is dead simple, actually..
Assignee: general → bzbarsky
Status: NEW → ASSIGNED
Attachment #226246 - Flags: superreview?(bugmail)
Attachment #226246 - Flags: review?(bugmail)
Attachment #226246 - Flags: approval1.8.0.5?
Attachment #226246 - Flags: approval-branch-1.8.1?(bugmail)
Comment on attachment 226246 [details] [diff] [review] Fix looks good r/sr/a=sicking
Attachment #226246 - Flags: superreview?(bugmail)
Attachment #226246 - Flags: superreview+
Attachment #226246 - Flags: review?(bugmail)
Attachment #226246 - Flags: review+
Attachment #226246 - Flags: approval1.8.0.5?
Attachment #226246 - Flags: approval1.8.0.5+
Attachment #226246 - Flags: approval-branch-1.8.1?(bugmail)
Attachment #226246 - Flags: approval-branch-1.8.1+
Fixed on both branches.
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Verified fixed on mac 1.5.0 branch build 2006062008 and on the 2.0 branch.
Status: RESOLVED → VERIFIED
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: