Closed Bug 28394 Opened 25 years ago Closed 25 years ago

Illegal Cast Up char* in nsString- RDF file system

Categories

(Core Graveyard :: RDF, defect, P3)

defect

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 6770

People

(Reporter: ftang, Assigned: mozilla)

References

Details

Attachments

(1 file)

I add assertion code in my local build to assert when people send non ASCII data to nsSring by using the char* favor of function, here is my first assert in my Japanese NT. The baseFilename in FileSystemDataSource::GetName is non ASCII (it is Japanese) in my NT. Please do correct unicode conversion to replace the line nsAutoString name(baseFilename); Here is my stack trace, you won't get such assert because 1. I didn't check in the assert 2. I am running in a Japanese system CopyChars1To2(char * 0x0012b6d4, int 0x00000000, const char * 0x02e86990, unsigned int 0x00000000, unsigned int 0x00000018) line 195 + 31 bytes nsStr::Append(nsStr & {...}, const nsStr & {...}, unsigned int 0x00000000, int 0x00000018) line 171 + 50 bytes nsString::Append(const char * 0x02e86990, int 0x00000018) line 1105 + 43 bytes nsAutoString::nsAutoString(const char * 0x02e86990, int 0xffffffff) line 2240 FileSystemDataSource::GetName(nsIRDFResource * 0x02e788a0, nsIRDFLiteral * * 0x0012ba64) line 1125 FileSystemDataSource::GetTarget(FileSystemDataSource * const 0x0268ebc0, nsIRDFResource * 0x02e788a0, nsIRDFResource * 0x010b4210, int 0x00000001, nsIRDFNode * * 0x0012bb70) line 437 + 39 bytes CompositeDataSourceImpl::GetTarget(CompositeDataSourceImpl * const 0x02e55a40, nsIRDFResource * 0x02e788a0, nsIRDFResource * 0x010b4210, int 0x00000001, nsIRDFNode * * 0x0012bb70) line 708 + 28 bytes RDFGenericBuilderImpl::SubstituteText(nsIRDFResource * 0x02e788a0, nsString & {...}) line 1669 + 65 bytes RDFGenericBuilderImpl::BuildContentFromTemplate(nsIContent * 0x02e54060, nsIContent * 0x02e86c20, nsIContent * 0x02e86c20, int 0x00000000, nsIRDFResource * 0x02e788a0, int 0x00000000, nsIContent * * 0x00000000, int * 0x00000000) line 2048 + 22 bytes RDFGenericBuilderImpl::CreateTemplateContents(nsIContent * 0x02e86c20, const nsString & {...}, nsIContent * * 0x00000000, int * 0x00000000) line 2632 + 46 bytes RDFGenericBuilderImpl::CreateTemplateAndContainerContents(nsIContent * 0x02e86c20, nsIContent * * 0x00000000, int * 0x00000000) line 2431 + 30 bytes RDFGenericBuilderImpl::CreateContents(RDFGenericBuilderImpl * const 0x02e55aa0, nsIContent * 0x02e86c20) line 738 + 16 bytes nsXULDocument::CreateContents(nsXULDocument * const 0x0297b644, nsIContent * 0x02e86c20) line 2027 + 16 bytes nsXULElement::EnsureContentsGenerated() line 3263 + 27 bytes nsXULElement::ChildCount(const nsXULElement * const 0x02e86c20, int & 0x02956710) line 2017 + 8 bytes nsCSSFrameConstructor::TableProcessChildren(nsIPresShell * 0x02956500, nsIPresContext * 0x0298ea00, nsFrameConstructorState & {...}, nsIContent * 0x02e86c20, nsIFrame * 0x00fa6000, nsFrameItems & {...}, nsTableCreator & {...}) line 1923 nsCSSFrameConstructor::ConstructTableRowFrameOnly(nsIPresShell * 0x02956500, nsIPresContext * 0x0298ea00, nsFrameConstructorState & {...}, nsIContent * 0x02e86c20, nsIFrame * 0x00fa5f70, nsIStyleContext * 0x02e81ce0, int 0x00000001, nsIFrame * & 0x00fa6000, nsTableCreator & {...}) line 1671 + 38 bytes nsCSSFrameConstructor::ConstructTableRowFrame(nsIPresShell * 0x02956500, nsIPresContext * 0x0298ea00, nsFrameConstructorState & {...}, nsIContent * 0x02e86c20, nsIFrame * 0x00fa5f70, nsIStyleContext * 0x02e81ce0, nsIFrame * & 0x00000000, nsIFrame * & 0x00fa6000, nsTableCreator & {...}, nsTableList * 0x00000000) line 1609 + 49 bytes nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell * 0x02956500, nsIPresContext * 0x0298ea00, nsFrameConstructorState & {...}, nsIContent * 0x02e86c20, nsIFrame * 0x00fa5f70, nsIAtom * 0x01936cf0, nsIStyleContext * 0x02e81ce0, nsFrameItems & {...}, int & 0x00000000) line 4178 + 49 bytes nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x02956500, nsIPresContext * 0x0298ea00, nsFrameConstructorState & {...}, nsIContent * 0x02e86c20, nsIFrame * 0x00fa5f70, nsFrameItems & {...}) line 5568 + 54 bytes nsCSSFrameConstructor::CreateTreeWidgetContent(nsCSSFrameConstructor * const 0x02956710, nsIPresContext * 0x0298ea00, nsIFrame * 0x00fa5f70, nsIFrame * 0x00000000, nsIContent * 0x02e86c20, nsIFrame * * 0x00fa5fb8, int 0x00000001, int 0x00000000, nsILayoutHistoryState * 0x00000000) line 9904 + 37 bytes nsTreeRowGroupFrame::GetFirstFrameForReflow(nsIPresContext * 0x0298ea00) line 1212 nsTableRowGroupFrame::ReflowMappedChildren(nsTableRowGroupFrame * const 0x00fa5f70, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, RowGroupReflowState & {...}, unsigned int & 0x00000000, nsTableRowFrame * 0x00000000, nsReflowReason eReflowReason_Initial, int 0x00000001, int 0x00000000) line 376 + 18 bytes nsTableRowGroupFrame::Reflow(nsTableRowGroupFrame * const 0x00fa5f70, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1092 + 38 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x00fa5f70, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0x00000000, int 0x000000d2, unsigned int 0x00000000, unsigned int & 0x00000000) line 638 + 31 bytes nsTableRowGroupFrame::ReflowMappedChildren(nsTableRowGroupFrame * const 0x00f9cb64, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, RowGroupReflowState & {...}, unsigned int & 0x00000000, nsTableRowFrame * 0x00000000, nsReflowReason eReflowReason_Initial, int 0x00000001, int 0x00000000) line 437 + 45 bytes nsTableRowGroupFrame::Reflow(nsTableRowGroupFrame * const 0x00f9cb64, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1092 + 38 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x00f9cb64, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0x00000000, int 0x000000d2, unsigned int 0x00000000, unsigned int & 0x00000000) line 638 + 31 bytes nsTableRowGroupFrame::ReflowMappedChildren(nsTableRowGroupFrame * const 0x00f9c750, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, RowGroupReflowState & {...}, unsigned int & 0x00000000, nsTableRowFrame * 0x00000000, nsReflowReason eReflowReason_Initial, int 0x00000001, int 0x00000000) line 437 + 45 bytes nsTableRowGroupFrame::Reflow(nsTableRowGroupFrame * const 0x00f9c750, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1092 + 38 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x00f9c750, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0x00000000, int 0x00000000, unsigned int 0x00000000, unsigned int & 0x00000000) line 638 + 31 bytes nsTableRowGroupFrame::ReflowMappedChildren(nsTableRowGroupFrame * const 0x00f9c6c0, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, RowGroupReflowState & {...}, unsigned int & 0x00000000, nsTableRowFrame * 0x00000000, nsReflowReason eReflowReason_Initial, int 0x00000001, int 0x00000000) line 437 + 45 bytes nsTableRowGroupFrame::Reflow(nsTableRowGroupFrame * const 0x00f9c6c0, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1092 + 38 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x00f9c6c0, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0x00000000, int 0x000000d2, unsigned int 0x00000000, unsigned int & 0x00000000) line 638 + 31 bytes nsTableRowGroupFrame::ReflowMappedChildren(nsTableRowGroupFrame * const 0x00f8e890, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, RowGroupReflowState & {...}, unsigned int & 0x00000000, nsTableRowFrame * 0x00000000, nsReflowReason eReflowReason_Initial, int 0x00000001, int 0x00000000) line 437 + 45 bytes nsTableRowGroupFrame::Reflow(nsTableRowGroupFrame * const 0x00f8e890, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1092 + 38 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x00f8e890, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0x00000000, int 0x00000000, unsigned int 0x00000000, unsigned int & 0x00000000) line 638 + 31 bytes nsTableRowGroupFrame::ReflowMappedChildren(nsTableRowGroupFrame * const 0x00f8e800, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, RowGroupReflowState & {...}, unsigned int & 0x00000000, nsTableRowFrame * 0x00000000, nsReflowReason eReflowReason_Initial, int 0x00000001, int 0x00000000) line 437 + 45 bytes nsTableRowGroupFrame::Reflow(nsTableRowGroupFrame * const 0x00f8e800, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1092 + 38 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x00f8e800, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0x00000000, int 0x00000000, unsigned int 0x00000000, unsigned int & 0x00000000) line 638 + 31 bytes nsTableFrame::ReflowMappedChildren(nsTableFrame * const 0x00f8e6c8, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, InnerTableReflowState & {...}, unsigned int & 0x00000000) line 2933 + 41 bytes nsTableFrame::ResizeReflowPass2(nsTableFrame * const 0x00f8e6c8, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1947 + 31 bytes nsTableFrame::Reflow(nsTableFrame * const 0x00f8e6c8, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1591 + 34 bytes nsTreeFrame::Reflow(nsTreeFrame * const 0x00f8e6c8, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 410 + 25 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x00f8e6c8, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0x00000000, int 0x00000000, unsigned int 0x00000000, unsigned int & 0x00000000) line 638 + 31 bytes nsTableOuterFrame::Reflow(nsTableOuterFrame * const 0x00f8e66c, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 982 + 43 bytes nsTreeOuterFrame::Reflow(nsTreeOuterFrame * const 0x00f8e66c, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 136 + 25 bytes nsBlockReflowContext::ReflowBlock(nsIFrame * 0x00f8e66c, const nsRect & {...}, int 0x00000000, int 0x00000000, int 0x00000001, nsMargin & {...}, unsigned int & 0x00000000) line 449 + 45 bytes nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & {...}, nsLineBox * 0x02e6e6a0, int * 0x0012e634) line 3494 + 59 bytes nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x02e6e6a0, int * 0x0012e634, int 0x00000000) line 2807 + 23 bytes nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2618 + 27 bytes nsBlockFrame::Reflow(nsBlockFrame * const 0x00f8e624, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1562 + 15 bytes nsBoxFrameInner::FlowChildAt(nsIFrame * 0x00f8e624, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000, nsCalculatedBoxInfo & {...}, int 0x00000000, int 0x00000000, int 0x00000001, nsIFrame * & 0x00000000, int & 0x00000000, const nsString & {...}) line 2033 nsBoxFrameInner::FlowChildren(nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000, nsIFrame * & 0x00000000, nsRect & {...}, nsSize & {...}, int & 0x00000000) line 1358 nsBoxFrame::Reflow(nsBoxFrame * const 0x00f8e570, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1082 nsContainerFrame::ReflowChild(nsIFrame * 0x00f8e570, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0x00000000, int 0x00000000, unsigned int 0x00000000, unsigned int & 0x00000000) line 638 + 31 bytes RootFrame::Reflow(RootFrame * const 0x00f8e534, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 331 nsContainerFrame::ReflowChild(nsIFrame * 0x00f8e534, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0x00000000, int 0x00000000, unsigned int 0x00000000, unsigned int & 0x00000000) line 638 + 31 bytes ViewportFrame::Reflow(ViewportFrame * const 0x00f8e4f8, nsIPresContext * 0x0298ea00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 531 PresShell::InitialReflow(PresShell * const 0x02956500, int 0x0000097e, int 0x000020b2) line 1259 nsXULDocument::StartLayout() line 3533 nsXULDocument::ResumeWalk() line 4807 nsXULDocument::OnStreamComplete(nsXULDocument * const 0x0297b664, nsIStreamLoader * 0x00000000, nsISupports * 0x00000000, unsigned int 0x00000000, unsigned int 0x00000a03, const char * 0x02476670) line 4916 + 11 bytes nsStreamLoader::OnStopRequest(nsStreamLoader * const 0x02e2f734, nsIChannel * 0x0295cb20, nsISupports * 0x00000000, unsigned int 0x00000000, const unsigned short * 0x00000000) line 111 + 75 bytes nsResChannel::OnStopRequest(nsResChannel * const 0x0295cb24, nsIChannel * 0x0295f190, nsISupports * 0x00000000, unsigned int 0x00000000, const unsigned short * 0x00000000) line 596 + 53 bytes nsFileChannel::OnStopRequest(nsFileChannel * const 0x0295f194, nsIChannel * 0x0295c090, nsISupports * 0x00000000, unsigned int 0x00000000, const unsigned short * 0x00000000) line 446 + 45 bytes nsOnStopRequestEvent::HandleEvent(nsOnStopRequestEvent * const 0x0295a060) line 279 nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x02959770) line 93 + 12 bytes PL_HandleEvent(PLEvent * 0x02959770) line 526 + 10 bytes PL_ProcessPendingEvents(PLEventQueue * 0x01082390) line 487 + 9 bytes _md_EventReceiverProc(HWND__ * 0x055a0180, unsigned int 0x0000c0ed, unsigned int 0x00000000, long 0x01082390) line 975 + 9 bytes USER32! 77e41186() 01082390()
Blocks: 28424
This is beta1 because it cause the RDF file system source import IE favoriate incorrectly in standard Japanese Window installation. It will make the sidebar and bookmark menu show a lot of garbage by default. see screenshot.
Keywords: beta1
somehow I cannot create attachment- screenshot post to netscape internal- http://warp/u/ftang/tmp/image3DT.JPG
Frank, I've attached a small diff. Can you try it out and see how it works for you? Thanks!
Status: NEW → ASSIGNED
While the diff I've attached fixes getting filenames from the OS via Unicode, the whole IE favorites thing is somewhat of a different issue. See bug # 6770 for details. (Note: this bug is NOT a DUP of that one.)
Ignore both my proposed fix which is attached as well as my previous comment. This bug is a DUP of 6770. *** This bug has been marked as a duplicate of 6770 ***
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → DUPLICATE
Is this a dup of 5887 ?
BUG 5887 should dup to BUG 6770
verified dupe of 6770
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: