Closed Bug 517456 Opened 15 years ago Closed 12 years ago

crash [@strchr | nsParseMailMessageState::ParseHeaders() ], formerly [@ nsParseMailMessageState::ParseHeaders()]

Categories

(MailNews Core :: Backend, defect)

x86
Windows XP
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird 21.0

People

(Reporter: Usul, Assigned: hiro)

References

()

Details

(Keywords: crash)

Crash Data

Attachments

(1 file, 1 obsolete file)

0 mozcrt19.dll strchr strchr.asm:101 1 thunderbird.exe nsParseMailMessageState::ParseHeaders mailnews/local/src/nsParseMailbox.cpp:949 2 thunderbird.exe nsParseMailMessageState::ParseFolderLine mailnews/local/src/nsParseMailbox.cpp:677 3 thunderbird.exe nsMsgMailboxParser::HandleLine mailnews/local/src/nsParseMailbox.cpp:514 4 thunderbird.exe nsMsgLineBuffer::ConvertAndSendBuffer mailnews/base/util/nsMsgLineBuffer.cpp:264 5 thunderbird.exe nsMsgLineBuffer::BufferInput mailnews/base/util/nsMsgLineBuffer.cpp:201 6 thunderbird.exe nsMsgMailboxParser::ProcessMailboxInputStream mailnews/local/src/nsParseMailbox.cpp:366 7 thunderbird.exe nsMsgMailboxParser::OnDataAvailable mailnews/local/src/nsParseMailbox.cpp:115 8 thunderbird.exe nsMailboxProtocol::ReadFolderResponse mailnews/local/src/nsMailboxProtocol.cpp:553 9 thunderbird.exe nsMailboxProtocol::ProcessProtocolState mailnews/local/src/nsMailboxProtocol.cpp:688 10 thunderbird.exe nsMsgProtocol::OnDataAvailable mailnews/base/util/nsMsgProtocol.cpp:359 11 thunderbird.exe nsInputStreamPump::OnStateTransfer netwerk/base/src/nsInputStreamPump.cpp:508 12 thunderbird.exe nsInputStreamPump::OnInputStreamReady netwerk/base/src/nsInputStreamPump.cpp:398 13 xpcom_core.dll nsOutputStreamReadyEvent::Run xpcom/io/nsStreamUtils.cpp:111 14 xpcom_core.dll nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:521 15 xpcom_core.dll NS_ProcessPendingEvents_P objdir-tb/mozilla/xpcom/build/nsThreadUtils.cpp:183 16 thunderbird.exe nsBaseAppShell::NativeEventCallback widget/src/xpwidgets/nsBaseAppShell.cpp:121 17 thunderbird.exe nsAppShell::EventWindowProc widget/src/windows/nsAppShell.cpp:91 18 user32.dll InternalCallWinProc 19 user32.dll UserCallWinProcCheckWow 20 user32.dll DispatchMessageWorker 21 user32.dll DispatchMessageW 22 ole32.dll CDragOperation::HandleMessages 23 ole32.dll DoDragDrop 24 thunderbird.exe nsDragService::StartInvokingDragSession widget/src/windows/nsDragService.cpp:316 25 thunderbird.exe nsDragService::InvokeDragSession widget/src/windows/nsDragService.cpp:263 26 thunderbird.exe nsBaseDragService::InvokeDragSessionWithImage widget/src/xpwidgets/nsBaseDragService.cpp:276 27 thunderbird.exe nsEventStateManager::DoDefaultDragStart content/events/src/nsEventStateManager.cpp:2501 28 thunderbird.exe nsEventStateManager::GenerateDragGesture content/events/src/nsEventStateManager.cpp:2256 29 thunderbird.exe nsEventStateManager::PreHandleEvent content/events/src/nsEventStateManager.cpp:997 30 thunderbird.exe PresShell::HandleEventInternal layout/base/nsPresShell.cpp:6313 31 thunderbird.exe PresShell::HandlePositionedEvent layout/base/nsPresShell.cpp:6211 32 thunderbird.exe PresShell::HandleEvent layout/base/nsPresShell.cpp:6071 33 thunderbird.exe nsViewManager::HandleEvent view/src/nsViewManager.cpp:1400 34 thunderbird.exe nsViewManager::DispatchEvent view/src/nsViewManager.cpp:1359 35 thunderbird.exe HandleEvent view/src/nsView.cpp:168 36 thunderbird.exe nsWindow::DispatchEvent widget/src/windows/nsWindow.cpp:1051 37 thunderbird.exe nsWindow::DispatchWindowEvent widget/src/windows/nsWindow.cpp:1071 38 thunderbird.exe nsWindow::DispatchMouseEvent widget/src/windows/nsWindow.cpp:6614 39 thunderbird.exe ChildWindow::DispatchMouseEvent widget/src/windows/nsWindow.cpp:6761 40 thunderbird.exe nsWindow::ProcessMessage widget/src/windows/nsWindow.cpp:4618 41 thunderbird.exe nsWindow::WindowProc widget/src/windows/nsWindow.cpp:1267 42 user32.dll InternalCallWinProc 43 user32.dll UserCallWinProcCheckWow 44 user32.dll DispatchMessageWorker 45 user32.dll DispatchMessageW 46 thunderbird.exe nsAppShell::ProcessNextNativeEvent widget/src/windows/nsAppShell.cpp:165 47 thunderbird.exe nsBaseAppShell::DoProcessNextNativeEvent widget/src/xpwidgets/nsBaseAppShell.cpp:151 48 thunderbird.exe nsBaseAppShell::OnProcessNextEvent widget/src/xpwidgets/nsBaseAppShell.cpp:278 49 xpcom_core.dll nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:508 50 xpcom_core.dll NS_ProcessNextEvent_P objdir-tb/mozilla/xpcom/build/nsThreadUtils.cpp:227 51 thunderbird.exe nsBaseAppShell::Run widget/src/xpwidgets/nsBaseAppShell.cpp:170 52 thunderbird.exe nsAppStartup::Run toolkit/components/startup/src/nsAppStartup.cpp:193 53 thunderbird.exe XRE_main toolkit/xre/nsAppRunner.cpp:3321 54 thunderbird.exe NS_internal_main mail/app/nsMailApp.cpp:103 55 thunderbird.exe wmain toolkit/xre/nsWindowsWMain.cpp:110 56 thunderbird.exe __tmainCRTStartup objdir-tb/mozilla/memory/jemalloc/src/crtexe.c:591 57 kernel32.dll BaseThreadInitThunk 58 ntdll.dll __RtlUserThreadStart 59 ntdll.dll _RtlUserThreadStart
ludo, is this something you hit during a litmus test? not a new crash, but quite rare - 0-2 per month on crash-stats. bcf1c5b0-37cc-4adb-bd1f-181e52090922 3.0b3 0 mozcrt19.dll strchr strchr.asm:101 1 thunderbird.exe nsParseMailMessageState::ParseHeaders mailnews/local/src/nsParseMailbox.cpp:949 2 thunderbird.exe nsParseMailMessageState::ParseFolderLine mailnews/local/src/nsParseMailbox.cpp:677 3 thunderbird.exe nsMsgMailboxParser::HandleLine mailnews/local/src/nsParseMailbox.cpp:514 4 thunderbird.exe nsMsgLineBuffer::ConvertAndSendBuffer mailnews/base/util/nsMsgLineBuffer.cpp:264 5 thunderbird.exe nsMsgLineBuffer::BufferInput mailnews/base/util/nsMsgLineBuffer.cpp:201 6 thunderbird.exe nsMsgMailboxParser::ProcessMailboxInputStream mailnews/local/src/nsParseMailbox.cpp:366 7 thunderbird.exe nsMsgMailboxParser::OnDataAvailable mailnews/local/src/nsParseMailbox.cpp:115 8 thunderbird.exe nsMailboxProtocol::ReadFolderResponse mailnews/local/src/nsMailboxProtocol.cpp:553 9 thunderbird.exe nsMailboxProtocol::ProcessProtocolState mailnews/local/src/nsMailboxProtocol.cpp:688 10 thunderbird.exe nsMsgProtocol::OnDataAvailable mailnews/base/util/nsMsgProtocol.cpp:351 11 thunderbird.exe nsInputStreamPump::OnStateTransfer netwerk/base/src/nsInputStreamPump.cpp:508 12 thunderbird.exe nsInputStreamPump::OnInputStreamReady netwerk/base/src/nsInputStreamPump.cpp:398 13 xpcom_core.dll nsInputStreamReadyEvent::Run xpcom/io/nsStreamUtils.cpp:111 Oldest ones I find are bp-20ecdd3e-5722-4e5a-97d1-71b5f2090702 3.0b2 bp-72b1940c-2091-4955-a9df-dc95e2090619 3.0b2
Summary: crash [@strchr | nsParseMailMessageState::ParseHeaders() ] → crash [@strchr | nsParseMailMessageState::ParseHeaders() ], formerly [@ nsParseMailMessageState::ParseHeaders()]
(In reply to comment #1) > ludo, is this something you hit during a litmus test? No - if so I would have added STRs.
Crash Signature: [@strchr | nsParseMailMessageState::ParseHeaders() ] [@ nsParseMailMessageState::ParseHeaders()]
a thunderbird 5 example bp-6e28a71f-ec61-4f0e-8887-a8c3f2110726 EXCEPTION_ACCESS_VIOLATION_READ 0x10916000 0 mozcrt19.dll strchr strchr.asm:101 1 xul.dll nsParseMailMessageState::ParseHeaders mailnews/local/src/nsParseMailbox.cpp:950 2 xul.dll nsParseMailMessageState::ParseFolderLine mailnews/local/src/nsParseMailbox.cpp:678 3 xul.dll nsMsgMailboxParser::HandleLine mailnews/local/src/nsParseMailbox.cpp:513 4 xul.dll nsMsgLineBuffer::ConvertAndSendBuffer mailnews/base/util/nsMsgLineBuffer.cpp:265 5 xul.dll nsMsgLineBuffer::BufferInput mailnews/base/util/nsMsgLineBuffer.cpp:202 6 xul.dll nsMsgMailboxParser::ProcessMailboxInputStream mailnews/local/src/nsParseMailbox.cpp:365 7 xul.dll nsMsgMailboxParser::OnDataAvailable mailnews/local/src/nsParseMailbox.cpp:115 8 xul.dll nsMailboxProtocol::ReadFolderResponse mailnews/local/src/nsMailboxProtocol.cpp:554 9 xul.dll nsMailboxProtocol::ProcessProtocolState mailnews/local/src/nsMailboxProtocol.cpp:689 10 xul.dll nsMsgProtocol::OnDataAvailable mailnews/base/util/nsMsgProtocol.cpp:387 slightly different stack, and line number nsParseMailMessageState::ParseHeaders() bp-b6022bd6-513b-4bef-82e5-c67412110725 EXCEPTION_ACCESS_VIOLATION_WRITE 0xd 0 xul.dll nsParseMailMessageState::ParseHeaders mailnews/local/src/nsParseMailbox.cpp:1040 1 xul.dll nsParseMailMessageState::ParseFolderLine mailnews/local/src/nsParseMailbox.cpp:678 2 xul.dll nsParseMailMessageState::ParseAFolderLine mailnews/local/src/nsParseMailbox.cpp:665 3 xul.dll nsImapMailFolder::ParseAdoptedHeaderLine mailnews/imap/src/nsImapMailFolder.cpp:3065 4 xul.dll nsImapMailFolder::ParseMsgHdrs mailnews/imap/src/nsImapMailFolder.cpp:3018
Crash Signature: [@strchr | nsParseMailMessageState::ParseHeaders() ] [@ nsParseMailMessageState::ParseHeaders()] → [@strchr | nsParseMailMessageState::ParseHeaders() ] [@ nsParseMailMessageState::ParseHeaders()]
p.s. frame 1 is same line number
Version: 1.9.1 Branch → Trunk
bp-6e28a71f-ec61-4f0e-8887-a8c3f2110726 TB5 has same source line as bp-cf5017a2-d64e-4c58-8325-2b5d42120819 TB14 line 968 966 while (buf < buf_end) 967 { 968 char *colon = PL_strchr (buf, ':'); consistent line# for all the strchr | nsParseMailMessageState::ParseHeaders() crashes that I examined
(In reply to Wayne Mery (:wsmwk) from comment #5) > bp-6e28a71f-ec61-4f0e-8887-a8c3f2110726 TB5 has same source line as > bp-cf5017a2-d64e-4c58-8325-2b5d42120819 TB14 > line 968 > 966 while (buf < buf_end) > 967 { > 968 char *colon = PL_strchr (buf, ':'); Ah, this is really bad since buf is not NULL-terminated. We should use PL_strnchr there.
Attached patch Fix (obsolete) — Splinter Review
Unfortunately I can't write effective test because of jemalloc.
Assignee: nobody → hiikezoe
Attachment #653251 - Flags: review?(mbanner)
Comment on attachment 653251 [details] [diff] [review] Fix Review of attachment 653251 [details] [diff] [review]: ----------------------------------------------------------------- Sorry for the delay in getting to this. ::: mailnews/local/src/nsParseMailbox.cpp @@ +925,5 @@ > */ > int nsParseMailMessageState::ParseHeaders () > { > char *buf = m_headers.GetBuffer(); > + PRUint32 buf_length = m_headers.GetBufferPos(); As a result of recent changes, this should now be uint32_t rather than PRUint32.
Attachment #653251 - Flags: review?(mbanner) → review+
Attached patch fix v2Splinter Review
Updated patch with standard8's nit. As Hiro is not responding just get this landed as it seems finished.
Attachment #653251 - Attachment is obsolete: true
Attachment #703005 - Flags: review+
Status: NEW → ASSIGNED
Keywords: checkin-needed
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 21.0
See Also: → 1052327
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: