Open Bug 58476 Opened 24 years ago Updated 2 years ago

<SCRIPT SRC=relative link> in IMAP msg fails

Categories

(MailNews Core :: Networking: IMAP, defect, P3)

x86
Windows NT

Tracking

(Not tracked)

People

(Reporter: sspitzer, Unassigned)

References

()

Details

when I read certain emails (for example the "Blood Drive Today" email from Leah
Miller), I get two assertions.

in the first assertion, targetScheme is "".

NTDLL! 77f7629c()
nsDebug::Assertion(const char * 0x0244f140, const char * 0x0244f134, const char
* 0x0244f0f8, int 598) line 256 + 13 bytes
nsDebug::WarnIfFalse(const char * 0x0244f140, const char * 0x0244f134, const
char * 0x0244f0f8, int 598) line 358 + 21 bytes
nsScriptSecurityManager::CheckLoadURI(nsScriptSecurityManager * const
0x02369480, nsIURI * 0x03a179b4, nsIURI * 0x0454fee4, unsigned int 2) line 598 +
35 bytes
HTMLContentSink::ProcessSCRIPTTag(const nsIParserNode & {...}) line 4894 + 62 bytes
HTMLContentSink::AddLeaf(HTMLContentSink * const 0x03b012d0, const nsIParserNode
& {...}) line 3156 + 12 bytes
CNavDTD::AddLeaf(const nsIParserNode * 0x03099510) line 3686 + 22 bytes
CNavDTD::AddHeadLeaf(nsIParserNode * 0x03099510) line 3807 + 17 bytes
CNavDTD::HandleStartToken(CToken * 0x03e88570) line 1627 + 12 bytes
CNavDTD::HandleToken(CNavDTD * const 0x044da2b0, CToken * 0x00000000, nsIParser
* 0x03b07b80) line 770 + 12 bytes
CNavDTD::BuildModel(CNavDTD * const 0x044da2b0, nsIParser * 0x03b07b80,
nsITokenizer * 0x044ddcd0, nsITokenObserver * 0x00000000, nsIContentSink *
0x03b012d0) line 485 + 20 bytes
nsParser::BuildModel() line 2023 + 34 bytes
nsParser::ResumeParse(int 1, int 0) line 1904 + 11 bytes
nsParser::OnDataAvailable(nsParser * const 0x03b07b88, nsIChannel * 0x03a16550,
nsISupports * 0x03a179b4, nsIInputStream * 0x03b030e0, unsigned int 0, unsigned
int 4235) line 2356 + 19 bytes
nsDocumentOpenInfo::OnDataAvailable(nsDocumentOpenInfo * const 0x03b07ef0,
nsIChannel * 0x03a16550, nsISupports * 0x03a179b4, nsIInputStream * 0x03b030e0,
unsigned int 0, unsigned int 4235) line 259 + 46 bytes
nsMimeBaseEmitter::Complete(nsMimeBaseEmitter * const 0x03b01a60) line 853 + 45
bytes
nsStreamConverter::OnStopRequest(nsStreamConverter * const 0x03b01f80,
nsIChannel * 0x03a16550, nsISupports * 0x00000000, unsigned int 0, const
unsigned short * 0x100a56c8 gCommonEmptyBuffer) line 962
nsDocumentOpenInfo::OnStopRequest(nsDocumentOpenInfo * const 0x03a15540,
nsIChannel * 0x03a16550, nsISupports * 0x00000000, unsigned int 0, const
unsigned short * 0x100a56c8 gCommonEmptyBuffer) line 277
InterceptStreamListener::OnStopRequest(InterceptStreamListener * const
0x03a18dc0, nsIChannel * 0x03a16550, nsISupports * 0x00000000, unsigned int 0,
const unsigned short * 0x100a56c8 gCommonEmptyBuffer) line 1207
nsOnStopRequestEvent::HandleEvent(nsOnStopRequestEvent * const 0x044d3200) line 302
nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x044d31b0) line 97 + 12 bytes
PL_HandleEvent(PLEvent * 0x044d31b0) line 580 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x00ac9b50) line 513 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x1a5201d2, unsigned int 49320, unsigned int 0,
long 11311952) line 1049 + 9 bytes
USER32! 77e71820()
00ac9b50()

NTDLL! 77f7629c()
nsDebug::Assertion(const char * 0x0155a934, const char * 0x0155a92c, const char
* 0x0155a8f4, int 208) line 256 + 13 bytes
nsDebug::WarnIfFalse(const char * 0x0155a934, const char * 0x0155a92c, const
char * 0x0155a8f4, int 208) line 358 + 21 bytes
nsIOService::GetProtocolHandler(nsIOService * const 0x013302d0, const char *
0x00000000, nsIProtocolHandler * * 0x0012ef58) line 208 + 32 bytes
nsIOService::NewChannelFromURI(nsIOService * const 0x013302d0, nsIURI *
0x0454fee4, nsIChannel * * 0x0012efa0) line 291 + 46 bytes
NS_OpenURI(nsIChannel * * 0x0012efe4, nsIURI * 0x0454fee4, nsIIOService *
0x013302d0, nsILoadGroup * 0x0304f580, nsIInterfaceRequestor * 0x0304e114,
unsigned int 512, unsigned int 0, unsigned int 0) line 106 + 20 bytes
NS_OpenURI(nsIStreamListener * 0x04551cd4, nsISupports * 0x00000000, nsIURI *
0x0454fee4, nsIIOService * 0x00000000, nsILoadGroup * 0x0304f580,
nsIInterfaceRequestor * 0x0304e114, unsigned int 512, unsigned int 0, unsigned
int 0) line 182 + 57 bytes
nsStreamLoader::Init(nsStreamLoader * const 0x04551cd0, nsIURI * 0x0454fee4,
nsIStreamLoaderObserver * 0x03b012d4, nsISupports * 0x00000000, nsILoadGroup *
0x0304f580, nsIInterfaceRequestor * 0x0304e114, unsigned int 512, unsigned int
0, unsigned int 0) line 47 + 61 bytes
NS_NewStreamLoader(nsIStreamLoader * * 0x0012f178, nsIURI * 0x0454fee4,
nsIStreamLoaderObserver * 0x03b012d4, nsISupports * 0x00000000, nsILoadGroup *
0x0304f580, nsIInterfaceRequestor * 0x0304e114, unsigned int 512, unsigned int
0, unsigned int 0) line 364 + 55 bytes
HTMLContentSink::ProcessSCRIPTTag(const nsIParserNode & {...}) line 4927 + 105 bytes
HTMLContentSink::AddLeaf(HTMLContentSink * const 0x03b012d0, const nsIParserNode
& {...}) line 3156 + 12 bytes
CNavDTD::AddLeaf(const nsIParserNode * 0x03099510) line 3686 + 22 bytes
CNavDTD::AddHeadLeaf(nsIParserNode * 0x03099510) line 3807 + 17 bytes
CNavDTD::HandleStartToken(CToken * 0x03e88570) line 1627 + 12 bytes
CNavDTD::HandleToken(CNavDTD * const 0x044da2b0, CToken * 0x00000000, nsIParser
* 0x03b07b80) line 770 + 12 bytes
CNavDTD::BuildModel(CNavDTD * const 0x044da2b0, nsIParser * 0x03b07b80,
nsITokenizer * 0x044ddcd0, nsITokenObserver * 0x00000000, nsIContentSink *
0x03b012d0) line 485 + 20 bytes
nsParser::BuildModel() line 2023 + 34 bytes
nsParser::ResumeParse(int 1, int 0) line 1904 + 11 bytes
nsParser::OnDataAvailable(nsParser * const 0x03b07b88, nsIChannel * 0x03a16550,
nsISupports * 0x03a179b4, nsIInputStream * 0x03b030e0, unsigned int 0, unsigned
int 4235) line 2356 + 19 bytes
nsDocumentOpenInfo::OnDataAvailable(nsDocumentOpenInfo * const 0x03b07ef0,
nsIChannel * 0x03a16550, nsISupports * 0x03a179b4, nsIInputStream * 0x03b030e0,
unsigned int 0, unsigned int 4235) line 259 + 46 bytes
nsMimeBaseEmitter::Complete(nsMimeBaseEmitter * const 0x03b01a60) line 853 + 45
bytes
nsStreamConverter::OnStopRequest(nsStreamConverter * const 0x03b01f80,
nsIChannel * 0x03a16550, nsISupports * 0x00000000, unsigned int 0, const
unsigned short * 0x100a56c8 gCommonEmptyBuffer) line 962
nsDocumentOpenInfo::OnStopRequest(nsDocumentOpenInfo * const 0x03a15540,
nsIChannel * 0x03a16550, nsISupports * 0x00000000, unsigned int 0, const
unsigned short * 0x100a56c8 gCommonEmptyBuffer) line 277
InterceptStreamListener::OnStopRequest(InterceptStreamListener * const
0x03a18dc0, nsIChannel * 0x03a16550, nsISupports * 0x00000000, unsigned int 0,
const unsigned short * 0x100a56c8 gCommonEmptyBuffer) line 1207
nsOnStopRequestEvent::HandleEvent(nsOnStopRequestEvent * const 0x044d3200) line 302
nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x044d31b0) line 97 + 12 bytes
PL_HandleEvent(PLEvent * 0x044d31b0) line 580 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x00ac9b50) line 513 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x1a5201d2, unsigned int 49320, unsigned int 0,
long 11311952) line 1049 + 9 bytes
USER32! 77e71820()
00ac9b50()
the message that gives me this error looks like someone did a "send page" on
http://echannel.netscape.com/this_week/001012_oct_blooddrive.html
sending http://echannel.netscape.com/this_week/001010_tommy_hilfiger.html will
also cause the problem.

in both those pages, I see:

<script language=javascript src='/js/idBrowser_news2.js'>

</script>

<script language="javascript">
idBrowser_news2();
</script>

I haven't tried to figure out which one is causing this.
I'll take a look.
Status: NEW → ASSIGNED
nsScriptSecurityManager::CheckLoadURI is comparing two imap URLs, but one of
them is returning an empty string for getScheme(), which is very odd.
If you "send page," and the page contains a SCRIPT tag with a relative SRC link,
the script won't be found when the recipient reads the message. It looks as
though the IMAP protocol handler's NewURI function can't handle relative links
at all and returns gibberish when presented with one. This causes some
assertions farther on down the pipe. Images from relative links work fine; I'm
not sure what the difference is. It's probably OK if relative links fail in
these circumstances, but they should fail consistently and gracefully, without
assertions.

As mentioned above, this came to light because the Netscape employee news
emails, from the URL above, use relative links in script tags.

Changing description and component. This may apply to POP too, I didn't try that.
Assignee: mstoltz → mscott
Status: ASSIGNED → NEW
Component: Mail Back End → Networking - IMAP
Summary: assertion in nsScriptSecurityManager::CheckLoadURI() when reading certain emails → <SCRIPT SRC=relative link> in IMAP msg fails
<script src= 
does not appear to work at all in build 2002051006
Product: MailNews → Core
Assignee: mscott → nobody
Product: Core → MailNews Core
QA Contact: esther → networking.imap
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.