Closed
Bug 336957
Opened 19 years ago
Closed 18 years ago
Crash when calling messageServiceFromURI("file://...").streamMessage [@ nsMailboxService::FetchMessage]
Categories
(MailNews Core :: Database, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: jens.b, Assigned: timeless)
Details
(4 keywords)
Crash Data
Attachments
(1 file)
(deleted),
patch
|
Bienvenu
:
review+
Bienvenu
:
superreview+
dveditz
:
approval1.8.0.7+
mtschrep
:
approval1.8.1+
|
Details | Diff | Splinter Review |
To read the original message source, one can ask the Messenger for the respective message service, from which one can then stream the message. This works fine for mailbox-message://, but when a file:// URL is used that points to a saved e-mail (.eml format), Thunderbird crashes (talkback report TB18391440X).
messageURI = "file:///C:/foo.eml?type=application/x-message-display";
stream = Components.classes["@mozilla.org/network/sync-stream-listener;1"]
.createInstance()
.QueryInterface(Components.interfaces.nsIInputStream);
messenger.messageServiceFromURI(messageURI)
.streamMessage(messageURI, stream, msgWindow, null, false, null);
This was discovered with the MessageFaces extension, which I built without thinking that I might have to handle EML files in a different way than mailbox messages. If the messenger.messageServiceFromURI returned null for file:// URLs, and/or the message service streamMessage() implementations failed cleanly, other extensions with the same error would still be broken, but things would look way better :-)
fwiw:
.createInstance()
.QueryInterface(Components.interfaces.nsIInputStream);
can be replaced with:
.createInstance(Components.interfaces.nsIInputStream);
it's cheaper.
While i'm handing out notes
SyncStream = Components.Constructor("@mozilla.org/network/sync-stream-listener;1", Components.interfaces.nsIInputStream);
...
stream = new SyncStream;
Anyway, patch for your bug in a moment.
Attachment #221153 -
Flags: superreview?(bienvenu)
Attachment #221153 -
Flags: review?(bienvenu)
Comment 3•19 years ago
|
||
Incident ID: 18391440
Stack Signature nsMailboxService::FetchMessage 83c42599
Product ID Thunderbird15
Build ID 2006030803
Trigger Time 2006-05-07 01:19:23.0
Platform Win32
Operating System Windows NT 5.0 build 2195
Module thunderbird.exe + (004efec0)
URL visited
User Comments
Since Last Crash 1514 sec
Total Uptime 31547 sec
Trigger Reason Access violation
Source File, Line No. c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/mailnews/local/src/nsMailboxService.cpp, line 259
Stack Trace
nsMailboxService::FetchMessage [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/mailnews/local/src/nsMailboxService.cpp, line 259]
nsMailboxService::StreamMessage [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/mailnews/local/src/nsMailboxService.cpp, line 309]
XPTC_InvokeByIndex [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/xpcom/reflect/xptcall/src/md/win32/xptcinvoke.cpp, line 102]
XPCWrappedNative::CallMethod [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/xpconnect/src/xpcwrappednative.cpp, line 2152]
XPC_WN_CallMethod [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/xpconnect/src/xpcwrappednativejsops.cpp, line 1444]
js_Invoke [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsinterp.c, line 1177]
js_Interpret [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsinterp.c, line 3562]
js_Execute [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsinterp.c, line 1424]
obj_eval [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsobj.c, line 1266]
js_Invoke [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsinterp.c, line 1177]
js_Interpret [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsinterp.c, line 3562]
js_Execute [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsinterp.c, line 1424]
obj_eval [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsobj.c, line 1266]
js_Invoke [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsinterp.c, line 1177]
js_Interpret [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsinterp.c, line 3562]
js_Invoke [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsinterp.c, line 1197]
js_Interpret [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsinterp.c, line 3562]
js_Invoke [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsinterp.c, line 1197]
js_InternalInvoke [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsinterp.c, line 1274]
JS_CallFunctionValue [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/js/src/jsapi.c, line 4171]
nsJSContext::CallEventHandler [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/dom/src/base/nsJSEnvironment.cpp, line 1411]
nsGlobalWindow::RunTimeout [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/dom/src/base/nsGlobalWindow.cpp, line 6360]
nsGlobalWindow::TimerCallback [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/dom/src/base/nsGlobalWindow.cpp, line 6723]
nsAppStartup::Run [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/toolkit/components/startup/src/nsAppStartup.cpp, line 151]
main [c:/builds/tinderbox/Tb-Mozilla1.8.0/WINNT_5.2_Depend/mozilla/mail/app/nsMailApp.cpp, line 62]
KERNEL32.DLL + 0x11af6 (0x77e81af6)
Severity: normal → critical
Keywords: crash
Summary: Crash when calling messageServiceFromURI("file://...").streamMessage → Crash when calling messageServiceFromURI("file://...").streamMessage [@ nsMailboxService::FetchMessage]
Updated•19 years ago
|
Attachment #221153 -
Flags: superreview?(bienvenu)
Attachment #221153 -
Flags: superreview+
Attachment #221153 -
Flags: review?(bienvenu)
Attachment #221153 -
Flags: review+
Reporter | ||
Comment 4•18 years ago
|
||
timeless, would this be suitable for the 1.8 branch? I noticed that you ported other patches to that file back to the branch, but not this one...
(Come to think of it, this might even be a candidate for a 1.8.0.x Gecko, as it's clearly stability-improving)
Assignee: bienvenu → timeless
Comment on attachment 221153 [details] [diff] [review]
look before leaping
mozilla/mailnews/local/src/nsMailboxService.cpp 1.122
Attachment #221153 -
Flags: approval1.8.1?
Attachment #221153 -
Flags: approval1.8.0.6?
Comment 6•18 years ago
|
||
Seems kind of scary that this function can return success without touching aURL.
Updated•18 years ago
|
Attachment #221153 -
Flags: approval1.8.1? → approval1.8.1+
Comment on attachment 221153 [details] [diff] [review]
look before leaping
MOZILLA_1_8_BRANCH:
mozilla/mailnews/local/src/nsMailboxService.cpp 1.114.8.6
i filed bug 343398 for dbaron.
i'm using this bug simply to fix the crash, which i believe i did.
if anyone wants to do anything else (including object to my fixing this bug) then they're free to use any bug that isn't assigned to me.
Comment 9•18 years ago
|
||
Comment on attachment 221153 [details] [diff] [review]
look before leaping
approved for 1.8.0 branch, a=dveditz for drivers
Attachment #221153 -
Flags: approval1.8.0.7? → approval1.8.0.7+
Assignee | ||
Comment 10•18 years ago
|
||
Comment on attachment 221153 [details] [diff] [review]
look before leaping
MOZILLA_1_8_0_BRANCH:
mozilla/mailnews/local/src/nsMailboxService.cpp 1.114.8.3.2.2
Keywords: fixed1.8.0.7
Comment 11•18 years ago
|
||
Jens: I am wondering if you have a suggestion as to an easy way I can verify that the patch fixes the crash.
Reporter | ||
Comment 12•18 years ago
|
||
(In reply to comment #11)
> Jens: I am wondering if you have a suggestion as to an easy way I can verify
> that the patch fixes the crash.
The following line crashes Thunderbird 1.5.0.5 when evaluated in the JS console:
messageURI = "file:///C:/foo.eml?type=application/x-message-display"; stream = Components.classes["@mozilla.org/network/sync-stream-listener;1"].createInstance(Components.interfaces.nsIInputStream); Components.classes['@mozilla.org/messenger;1'].getService(Components.interfaces.nsIMessenger).messageServiceFromURI(messageURI).streamMessage(messageURI,stream,null, null, false, null);
The original code passed a non-null value for msgWindow to streamMessage(), but getting one from the JS console did not seem easy. I guess it is still a sufficient test case.
Comment 13•18 years ago
|
||
verified fixed 1.8.1.3 with Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.3) Gecko/20070326 Thunderbird/2.0.0.0 Mnenhy/0.7.5.0 ID:2007032620 using Talkback Data and the testcase from comment #12
Keywords: verified1.8.1.3
Updated•16 years ago
|
Product: Core → MailNews Core
Updated•13 years ago
|
Crash Signature: [@ nsMailboxService::FetchMessage]
You need to log in
before you can comment on or make changes to this bug.
Description
•