Closed Bug 493240 Opened 15 years ago Closed 15 years ago

crash in imglib [@imgRequestProxy::OnStopRequest]

Categories

(Core :: Graphics: ImageLib, defect)

x86
All
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: cbook, Assigned: joe)

References

()

Details

(Keywords: crash, fixed1.9.1, regression, Whiteboard: [sg:critical] keep closed, see bug 508057 comment 23)

Crash Data

Attachments

(1 file)

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b5pre) Gecko/20090515 Shiretoko/3.5b5pre

Steps to reproduce:
-> Load http://www.soohie.com/robes-AAAC.html?& (you need to wait till the site is completly loaded)
-> Crash
Exploitability Classification: EXPLOITABLE

(f0c.7c0): Access violation - code c0000005 (!!! second chance !!!)
eax=69746163 ebx=7ffde000 ecx=07134f18 edx=029eaf10 esi=00ceaa80 edi=7c91005d
eip=69746163 esp=0012f7f0 ebp=0012f888 iopl=0         nv up ei pl zr na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
69746163 ??              ???
0:000> cdb: Reading initial command '!load winext\msec.dll;.logappend;!exploitable;k;q'
Opened log file 'dbgeng.log'
$ Exploitability Classification: EXPLOITABLE
Recommended Bug Title: Exploitable - Read Access Violation at the Instruction Pointer starting at Unknown Symbol @ 0x6d89c0006d89c (Hash=0x10107a1d.0x4216183b)

Access violations at the instruction pointer are exploitable if not near NULL.
ChildEBP RetAddr
WARNING: Frame IP not in any known module. Following frames may be wrong.
0012f7ec 02986fdf 0x69746163
0012f888 0298bf9a imglib2!imgRequestProxy::OnStopRequest+0xdf
0012f8e0 0297dc22 imglib2!imgRequest::OnStopRequest+0x25a
0012f8fc 02ae1218 imglib2!ProxyListener::OnStopRequest+0x42
0012f91c 02b833c9 necko!nsStreamListenerTee::OnStopRequest+0xa8
0012f964 02ad796e necko!nsHttpChannel::OnStopRequest+0x3e9
0012f990 02ad7340 necko!nsInputStreamPump::OnStateStop+0xde
0012f9a0 002e2d8a necko!nsInputStreamPump::OnInputStreamReady+0x90
0012f9b4 00304d1a xpcom_core!nsInputStreamReadyEvent::Run+0x4a
0012f9f0 00296783 xpcom_core!nsThread::ProcessNextEvent+0x1fa
0012fa0c 0286f72d xpcom_core!NS_ProcessNextEvent_P+0x53
0012fa20 033f42db gkwidget!nsBaseAppShell::Run+0x5d
0012fa34 1000cfd7 tkitcmps!nsAppStartup::Run+0x6b
0012fed0 00401ac2 xul!XRE_main+0x2fb7
0012ff34 00401289 firefox!NS_internal_main+0x2b2
0012ff68 00402746 firefox!wmain+0x119
0012ffb8 0040259d firefox!__tmainCRTStartup+0x1a6
0012ffc0 7c817077 firefox!wmainCRTStartup+0xd
0012fff0 00000000 kernel32!RegisterWaitForInputIdle+0x49
quit:
Flags: blocking-firefox3.5?
Whiteboard: [sg:critical]
Keywords: crash
crashes minefield/mac as well.
Component: General → ImageLib
Flags: blocking-firefox3.5?
OS: Windows XP → All
Product: Firefox → Core
QA Contact: general → imagelib
Version: 3.5 Branch → Trunk
Flags: blocking1.9.1?
crash on Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b5pre) Gecko/20090513 Shiretoko/3.5b5pre  too, but no breakpad dialog
The EIP address where it crashes is actually the string "cati". 
FWIW, That string appears in the html input in 3 places, in these words:
application, location, d'authentification
Assignee: nobody → joe
Summary: Read Access Violation at the Instruction Pointer → crash in imglib [@imgRequestProxy::OnStopRequest]
Based on joe's valgrind output (http://pastebin.mozilla.org/650690), this is a regression from bug 393936.  The Cancel call in nsBulletFrame::Destroy should be CancelAndForgetObserver.
Blocks: 393936
And we should presumably audit all imgIRequest::Cancel callers.  I thought that got done in bug 393936...  What's the remaining list?
I repeatedly ask myself what I'd do without Boris.

This is a no-brainer change that fixes this bug. Also, I further audited Gecko, and found no other users of imgIRequest::Cancel() that should use imgIRequest::CancelAndForgetObserver() instead.
Attachment #377829 - Flags: superreview?(vladimir)
Attachment #377829 - Flags: review?(bzbarsky)
(However, a static analysis that shows me all callers of imgIRequest::Cancel() wouldn't go astray.)
Attachment #377829 - Flags: superreview?(vladimir)
Attachment #377829 - Flags: superreview+
Attachment #377829 - Flags: review?(bzbarsky)
Attachment #377829 - Flags: review+
Comment on attachment 377829 [details] [diff] [review]
Use CancelAndForgetObserver in nsBulletFrame

I can just r+sr this.
http://hg.mozilla.org/mozilla-central/rev/3c30f6d52942
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Flags: blocking1.9.1? → blocking1.9.1+
> found no other users of imgIRequest::Cancel() that should use
> imgIRequest::CancelAndForgetObserver()

See bug 508057.  :(
Keywords: regression
Whiteboard: [sg:critical] → [sg:critical] keep closed, see bug 508057 comment 23
Crash Signature: [@imgRequestProxy::OnStopRequest]
bug 508057 comment 24 seems to say that we don't need to keep this closed any more. Is that so?
Group: core-security
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: