Bug 906469 - fix maildir crash while parsing a folder.

Tag #1273
This commit is contained in:
Matt A. Tobin 2019-11-10 23:09:17 -05:00 • committed by Roy Tam
commit 4046167650

View file

@ -1194,6 +1194,7 @@ MaildirStoreParser::~MaildirStoreParser()
nsresult MaildirStoreParser::ParseNextMessage(nsIFile *aFile) nsresult MaildirStoreParser::ParseNextMessage(nsIFile *aFile)
{ {
nsresult rv; nsresult rv;
NS_ENSURE_TRUE(m_db, NS_ERROR_NULL_POINTER);
nsCOMPtr<nsIInputStream> inputStream; nsCOMPtr<nsIInputStream> inputStream;
nsCOMPtr<nsIMsgParseMailMsgState> msgParser = nsCOMPtr<nsIMsgParseMailMsgState> msgParser =
do_CreateInstance(NS_PARSEMAILMSGSTATE_CONTRACTID, &rv); do_CreateInstance(NS_PARSEMAILMSGSTATE_CONTRACTID, &rv);
@ -1278,9 +1279,10 @@ void MaildirStoreParser::TimerCallback(nsITimer *aTimer, void *aClosure)
parser->m_directoryEnumerator->GetNext(getter_AddRefs(aSupport)); parser->m_directoryEnumerator->GetNext(getter_AddRefs(aSupport));
nsresult rv; nsresult rv;
nsCOMPtr<nsIFile> currentFile(do_QueryInterface(aSupport, &rv)); nsCOMPtr<nsIFile> currentFile(do_QueryInterface(aSupport, &rv));
NS_ENSURE_SUCCESS_VOID(rv); if (NS_SUCCEEDED(rv))
parser->ParseNextMessage(currentFile); rv = parser->ParseNextMessage(currentFile);
// ### TODO - what if this fails? if (NS_FAILED(rv) && parser->m_listener)
parser->m_listener->OnStopRunningUrl(nullptr, NS_ERROR_FAILURE);
} }
nsresult MaildirStoreParser::StartTimer() nsresult MaildirStoreParser::StartTimer()