Last Comment Bug 750666 - crash in nsPop3Sink::FindPartialMessages
: crash in nsPop3Sink::FindPartialMessages
Status: RESOLVED FIXED
: crash, regression
Product: MailNews Core
Classification: Components
Component: Networking: POP (show other bugs)
: 12
: x86 Windows NT
: -- critical (vote)
: Thunderbird 18.0
Assigned To: Kent James (:rkent)
:
Mentors:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-05-01 05:15 PDT by Wayne Mery (:wsmwk, NI for questions)
Modified: 2015-10-07 18:38 PDT (History)
3 users (show)
rkent: in‑testsuite-
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
-
fixed


Attachments
null check (907 bytes, patch)
2012-09-27 10:08 PDT, Kent James (:rkent)
irving: review+
standard8: approval‑comm‑aurora+
Details | Diff | Splinter Review

Description Wayne Mery (:wsmwk, NI for questions) 2012-05-01 05:15:19 PDT
v12 regression - all crashes in past 8 mmonths are v12. earliest is bp-c6443679-2e5d-4f09-9d04-4a1f72120308 v12.0a2

This bug was filed from the Socorro interface and is 
report bp-9ed5fa82-c9d9-40e0-9286-e1f552120428 v12.0
============================================================= 

0	xul.dll	nsPop3Sink::FindPartialMessages	mailnews/local/src/nsPop3Sink.cpp:226
1	xul.dll	nsPop3Sink::BeginMailDelivery	mailnews/local/src/nsPop3Sink.cpp:296
2	xul.dll	nsPop3Protocol::GetStat	mailnews/local/src/nsPop3Protocol.cpp:2415
3	xul.dll	nsPop3Protocol::ProcessProtocolState	mailnews/local/src/nsPop3Protocol.cpp:3962
4	xul.dll	nsMsgProtocol::OnDataAvailable	mailnews/base/util/nsMsgProtocol.cpp:389
5	xul.dll	nsInputStreamPump::OnStateTransfer	netwerk/base/src/nsInputStreamPump.cpp:514
6	xul.dll	nsInputStreamPump::OnInputStreamReady	netwerk/base/src/nsInputStreamPump.cpp:402
Comment 1 Wayne Mery (:wsmwk, NI for questions) 2012-08-27 05:09:22 PDT
TB14 bp-fa462967-93e5-4f8f-b4ba-ae7402120814
Comment 2 Kent James (:rkent) 2012-09-27 10:08:01 PDT
Created attachment 665523 [details] [diff] [review]
null check

Analysis:

At http://mxr.mozilla.org/comm-central/source/mailnews/local/src/nsPop3Sink.cpp#163

      // Open the various streams we need to seek and read from the mailbox
      if (!isOpen)
      {
        rv = localFolder->GetFolderScanState(&folderScanState);
        if (NS_SUCCEEDED(rv))
          isOpen = true;
        else
          break;
      }
      rv = localFolder->GetUidlFromFolder(&folderScanState, msgDBHdr);
      if (!NS_SUCCEEDED(rv))
        break;

All that GetFolderScanState does it set get the message store, and set it on folderScanState. The stream is set in GetUidlFromFolder. So isOpen is not a sufficient check to ensure that the stream exists. A failure in GetUidlFromFolder would result in isOpen == true, but null folderScanState.m_inputStream and a crash. So I extended that check.
Comment 3 Kent James (:rkent) 2012-09-28 09:46:31 PDT
Landed as http://hg.mozilla.org/comm-central/rev/5a8a3047b540

This is a class of bugs that is not critical to land before TB 17.0.0 ships, but should really be considered for pushing to TB 17* updates at some point since it is a low risk bugfix. Not sure how to flag this, but for now I'm using the tracking-thunderbird-17 flag.
Comment 4 Mark Banner (:standard8) 2012-10-04 06:24:55 PDT
Comment on attachment 665523 [details] [diff] [review]
null check

[Triage Comment]
For bugs such as these, just requesting approval-comm-aurora (or the appropriate branch flag) is enough, we wouldn't explicitly track these (unless they were super top-crash).
Comment 5 Florian Quèze [:florian] [:flo] 2012-10-05 11:26:44 PDT
https://hg.mozilla.org/releases/comm-aurora/rev/3e4ed43d54c6

Note You need to log in before you can comment on or make changes to this bug.