From 3accce0b2289ae46c97e7002e798a1d72d31b2e2 Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Wed, 16 May 2012 12:25:44 +0200 Subject: [PATCH] index: added sanity checks to mail handler --- src/internfile/mh_mail.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/internfile/mh_mail.cpp b/src/internfile/mh_mail.cpp index 5fef997f..1c0db488 100644 --- a/src/internfile/mh_mail.cpp +++ b/src/internfile/mh_mail.cpp @@ -130,9 +130,17 @@ bool MimeHandlerMail::set_document_string(const string &msgtxt) MD5String(msgtxt, md5); m_metaData[cstr_dj_keymd5] = MD5HexPrint(md5, xmd5); - m_stream = new stringstream(msgtxt); + if ((m_stream = new stringstream(msgtxt)) == 0 || !m_stream->good()) { + LOGERR(("MimeHandlerMail::set_document_string: stream create error." + "msgtxt.size() %d\n", int(msgtxt.size()))); + return false; + } delete m_bincdoc; - m_bincdoc = new Binc::MimeDocument; + if ((m_bincdoc = new Binc::MimeDocument) == 0) { + LOGERR(("MimeHandlerMail::set_doc._string: new Binc:Document failed." + " Out of memory?")); + return false; + } m_bincdoc->parseFull(*m_stream); if (!m_bincdoc->isHeaderParsed() && !m_bincdoc->isAllParsed()) { LOGERR(("MimeHandlerMail::set_document_string: mime parse error\n"));