Closed
Bug 83722
Opened 23 years ago
Closed 23 years ago
embedding widget will crash with generated content, file:/// as base url and an <img> tag in the document
Categories
(Core Graveyard :: Embedding: GTK Widget, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla0.9.1
People
(Reporter: blizzard, Assigned: blizzard)
Details
(Keywords: crash, Whiteboard: critical for mozilla 0.9.1, a=chofmann)
This crash was reported to me out of band and I don't have an easy test case that I can just put in the bug. Anyway, if you use the streaming methods in the embedding widget to render content that includes an image tag you would get a crash in the nsStdURL code. The problem is that the embedding code uses a Simple URI instead of a Standard URI so when you try and resolve the relative image path against the base uri handler the simple uri handler just dups the bad relative string instead of re-resolving it. You end up with a null scheme after the parse and in a comparison it falls over because in nsStdURL::SchemeIs() mScheme is null and this code dereferences it: // mScheme is guaranteed to be lower case. if (*i_Scheme == *mScheme || *i_Scheme == (*mScheme - ('a' - 'A')) ) { *o_Equals = PL_strcasecmp(mScheme, i_Scheme) ? PR_FALSE : PR_TRUE; } else { *o_Equals = PR_FALSE; } Anyway, the solution to the crash is simple. Just use a standard URL instead of a simple one. Index: EmbedStream.cpp =================================================================== RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/EmbedStream.cpp,v retrieving revision 1.5 diff -u -r1.5 EmbedStream.cpp --- EmbedStream.cpp 2001/04/10 05:59:23 1.5 +++ EmbedStream.cpp 2001/06/01 21:56:24 @@ -37,8 +37,6 @@ NS_IMPL_ISUPPORTS1(EmbedStream, nsIInputStream) -static NS_DEFINE_CID(kSimpleURICID, NS_SIMPLEURI_CID); - EmbedStream::EmbedStream() { NS_INIT_REFCNT(); @@ -108,7 +106,7 @@ // create a new uri object nsCOMPtr<nsIURI> uri; - uri = do_CreateInstance(kSimpleURICID, &rv); + uri = do_CreateInstance(NS_STANDARDURL_CONTRACTID, &rv); if (NS_FAILED(rv)) return rv;
Assignee | ||
Updated•23 years ago
|
Status: NEW → ASSIGNED
Whiteboard: critical for mozilla 0.9.1, waiting for r=, sr=, a=
Target Milestone: --- → mozilla0.9.1
Comment 1•23 years ago
|
||
r=valeski
Assignee | ||
Updated•23 years ago
|
Whiteboard: critical for mozilla 0.9.1, waiting for r=, sr=, a= → critical for mozilla 0.9.1, waiting for a=
Comment 3•23 years ago
|
||
a=chofmann
Updated•23 years ago
|
Whiteboard: critical for mozilla 0.9.1, waiting for a= → critical for mozilla 0.9.1, a=chofmann
Assignee | ||
Comment 4•23 years ago
|
||
Checked in on the branch and tip. Thanks, guys.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Updated•12 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•