Closed Bug 33588 Opened 25 years ago Closed 25 years ago

Crash when sorting by sender with Japanese name.

Categories

(MailNews Core :: Internationalization, defect, P3)

x86
Windows NT
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: scottputterman, Assigned: nhottanscp)

Details

(Keywords: crash)

I have at least one Japanese name in my thread pane as a sender. When I click on the sender column in order to sort I get the following crash in nsUCvJaSupport.cpp memcpy(unsigned char * 0x0000002d, unsigned char * 0x049f2950, unsigned long 3) line 355 nsEncoderSupport::FlushBuffer(char * * 0x0012d3e0, const char * 0x10258e9d) line 477 + 20 bytes nsEncoderSupport::Finish(nsEncoderSupport * const 0x049f2990, char * 0x0000002d, int * 0x0012d420) line 571 + 16 bytes MimeCharsetConverterClass::Convert(const char * 0x049f11d0, const int 13, char * * 0x0012d52c, int * 0x0012d504, int * 0x00000000) line 1424 + 26 bytes MIME_ConvertCharset(const int 0, const char * 0x034bc874, const char * 0x0012d5f0, const char * 0x049f11d0, const int 13, char * * 0x0012d52c, int * 0x0012d504, int * 0x00000000) line 1497 + 26 bytes MIME_ConvertString(const char * 0x034bc874, const char * 0x0012d5f0, const char * 0x049f11d0, char * * 0x0012d52c) line 1484 + 43 bytes nsMsgHeaderParser::ExtractHeaderAddressName(nsMsgHeaderParser * const 0x049e7bf0, const char * 0x0012d5f0, const char * 0x049f2e00, char * * 0x0012d678) line 425 + 53 bytes nsMsgHdr::GetAuthorCollationKey(nsMsgHdr * const 0x0434dda0, unsigned short * * 0x0012d710) line 630 + 30 bytes nsMessage::GetAuthorCollationKey(nsMessage * const 0x045d0664, unsigned short * * 0x0012d710) line 298 + 33 bytes nsMsgMessageDataSource::createMessageSenderNode(nsIMessage * 0x045d0664, int 1, nsIRDFNode * * 0x0012dc64) line 944 + 46 bytes nsMsgMessageDataSource::createMessageNode(nsIMessage * 0x045d0664, nsIRDFResource * 0x036dedd0, nsIRDFNode * * 0x0012dc64) line 875 + 18 bytes nsMsgMessageDataSource::GetTarget(nsMsgMessageDataSource * const 0x036dd170, nsIRDFResource * 0x045d0650, nsIRDFResource * 0x036dedd0, int 1, nsIRDFNode * * 0x0012dc64) line 288 + 25 bytes CompositeDataSourceImpl::GetTarget(CompositeDataSourceImpl * const 0x033efb40, nsIRDFResource * 0x045d0650, nsIRDFResource * 0x036dedd0, int 1, nsIRDFNode * * 0x0012dc64) line 708 + 28 bytes XULSortServiceImpl::GetTarget(contentSortInfo * 0x049daf40, _sortStruct * 0x0012e098, int 1, int 0, int 1, nsIRDFNode * * 0x0012dc64, int & 0) line 1066 + 59 bytes XULSortServiceImpl::GetResourceValue(contentSortInfo * 0x049daf40, _sortStruct * 0x0012e098, int 1, int 1, int 0, nsIRDFNode * * 0x0012dc64, int & 0) line 1188 + 31 bytes XULSortServiceImpl::GetNodeValue(contentSortInfo * 0x049daf40, _sortStruct * 0x0012e098, int 1, int 0, nsIRDFNode * * 0x0012dc64, int & 0) line 1409 + 31 bytes XULSortServiceImpl::InplaceSort(contentSortInfo * 0x049daf40, contentSortInfo * 0x049c2300, _sortStruct * 0x0012e098, int & 0) line 1612 + 45 bytes testSortCallback(const void * 0x027b264c, const void * 0x027b1ee0, void * 0x0012e098) line 1683 + 21 bytes NS_QuickSort(void * 0x027b1ee0, unsigned int 2098, unsigned int 4, int (const void *, const void *, void *)* 0x01797340 testSortCallback(const void *, const void *, void *), void * 0x0012e098) line 139 + 23 bytes XULSortServiceImpl::SortTreeChildren(nsIContent * 0x036dcbc0, _sortStruct * 0x0012e098) line 1794 + 30 bytes XULSortServiceImpl::DoSort(nsIDOMNode * 0x0340e744, const nsString & {"http://home.netscape.com/NC-rdf#Sender"}, const nsString & {"ascending"}) line 2396 + 30 bytes XULSortServiceImpl::Sort(XULSortServiceImpl * const 0x0339f810, nsIDOMNode * 0x0340e744, const char * 0x04526f70, const char * 0x03887130) line 2292 + 62 bytes XPTC_InvokeByIndex(nsISupports * 0x0339f810, unsigned int 3, unsigned int 3, nsXPTCVariant * 0x0012e4a0) line 139 nsXPCWrappedNativeClass::CallWrappedMethod(JSContext * 0x029ee6e0, nsXPCWrappedNative * 0x04527420, const XPCNativeMemberDescriptor * 0x04527494, nsXPCWrappedNativeClass::CallMode CALL_METHOD, unsigned int 3, long * 0x026a0900, long * 0x0012e644) line 898 + 43 bytes WrappedNative_CallMethod(JSContext * 0x029ee6e0, JSObject * 0x026e9448, unsigned int 3, long * 0x026a0900, long * 0x0012e644) line 200 + 34 bytes js_Invoke(JSContext * 0x029ee6e0, unsigned int 3, unsigned int 0) line 679 + 26 bytes js_Interpret(JSContext * 0x029ee6e0, long * 0x0012ef68) line 2457 + 15 bytes js_Invoke(JSContext * 0x029ee6e0, unsigned int 1, unsigned int 2) line 695 + 13 bytes js_InternalInvoke(JSContext * 0x029ee6e0, JSObject * 0x026ea840, long 40806496, unsigned int 0, unsigned int 1, long * 0x0012f0f4, long * 0x0012f0a0) line 768 + 19 bytes JS_CallFunctionValue(JSContext * 0x029ee6e0, JSObject * 0x026ea840, long 40806496, unsigned int 1, long * 0x0012f0f4, long * 0x0012f0a0) line 2791 + 31 bytes nsJSContext::CallEventHandler(nsJSContext * const 0x029ee870, void * 0x026ea840, void * 0x026ea860, unsigned int 1, void * 0x0012f0f4, int * 0x0012f0f0) line 563 + 33 bytes nsJSEventListener::HandleEvent(nsIDOMEvent * 0x03cb9634) line 128 + 57 bytes nsEventListenerManager::HandleEventSubType(nsListenerStruct * 0x0340fa90, nsIDOMEvent * 0x03cb9634, unsigned int 4, unsigned int 7) line 703 + 19 bytes nsEventListenerManager::HandleEvent(nsIPresContext * 0x029ed050, nsEvent * 0x0012f628, nsIDOMEvent * * 0x0012f5f0, unsigned int 7, nsEventStatus * 0x0012f9d8) line 843 + 29 bytes nsXULElement::HandleDOMEvent(nsXULElement * const 0x0340fbe0, nsIPresContext * 0x029ed050, nsEvent * 0x0012f628, nsIDOMEvent * * 0x0012f5f0, unsigned int 1, nsEventStatus * 0x0012f9d8) line 3193 nsEventStateManager::CheckForAndDispatchClick(nsEventStateManager * const 0x03611390, nsIPresContext * 0x029ed050, nsMouseEvent * 0x0012facc, nsEventStatus * 0x0012f9d8) line 1587 + 42 bytes nsEventStateManager::PostHandleEvent(nsEventStateManager * const 0x03611390, nsIPresContext * 0x029ed050, nsGUIEvent * 0x0012facc, nsIFrame * 0x0266ac78, nsEventStatus * 0x0012f9d8, nsIView * 0x03650390) line 757 + 24 bytes PresShell::HandleEvent(PresShell * const 0x02a1ddf4, nsIView * 0x03650390, nsGUIEvent * 0x0012facc, nsEventStatus * 0x0012f9d8, int & 1) line 3218 + 43 bytes nsView::HandleEvent(nsView * const 0x03650390, nsGUIEvent * 0x0012facc, unsigned int 8, nsEventStatus * 0x0012f9d8, int & 1) line 811 nsView::HandleEvent(nsView * const 0x0364b690, nsGUIEvent * 0x0012facc, unsigned int 8, nsEventStatus * 0x0012f9d8, int & 1) line 784 nsView::HandleEvent(nsView * const 0x02a1c570, nsGUIEvent * 0x0012facc, unsigned int 28, nsEventStatus * 0x0012f9d8, int & 1) line 784 nsViewManager2::DispatchEvent(nsViewManager2 * const 0x02a1c750, nsGUIEvent * 0x0012facc, nsEventStatus * 0x0012f9d8) line 1348
It is crashing before creating a collation key and try to extract an address (do that by converting to UTF-8). Adding cata to cc. Scott, could you attach the message causing this crash?
Status: NEW → ASSIGNED
I got the data, I can reproduce it on my machine.
Reassign to cata. Here is the data. It's converting from unicode to ISO-2022-JP. input unicode len=14 (byte len = 28) 03E733F0 43 00 4E 00 45 00 54 00 C.N.E.T. 03E733F8 20 00 4A 00 61 00 70 00 .J.a.p. 03E73400 61 00 6E 00 20 00 E8 7D a.n. .閘 03E73408 C6 96 40 5C CD CD CD CD ニ法\ヘヘヘヘ output ISO-2022-JP len=20 (byte len = 20) 03E73350 43 4E 45 54 20 4A 61 70 CNET Jap 03E73358 61 6E 20 1B 24 42 4A 54 an .$BJT 03E73360 3D 38 36 49 CD CD CD CD =86Iヘヘヘヘ
Assignee: nhotta → cata
Status: ASSIGNED → NEW
Naoki, is this output data the expected one, or the generated one - containing the error?
Status: NEW → ASSIGNED
Target Milestone: --- → M15
I am unable to reproduce this in my test program. The conversion goes fine, with the following result: "CNET Japan X$BJT=86IX(B", where X was the ESCape character. Ideas?
It was a caller's problem, I was passing a wrong buffer pointer. This part is shared by other libmime but only this case encodes to ISO-2022-JP (sender name contains japanese). That was missed from my test cases (and in i18n smoke test).
Assignee: cata → nhotta
Status: ASSIGNED → NEW
fix checked in
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Adding crash keyword
Keywords: crash
** Checked with 5/10/2000 Win32 build ** I have a bunch of messages in my mail folder with Japanese sender names. With the above build, I can change the sort order by clicking on the Sender tab to my heart's content and no crash occurs. Marking it verified as fixed.
Status: RESOLVED → VERIFIED
Product: MailNews → Core
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.