summaryrefslogtreecommitdiffstats
path: root/mailnews/compose
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2019-11-10 21:59:52 -0500
committerMatt A. Tobin <email@mattatobin.com>2019-11-10 21:59:52 -0500
commitcea77b76b3fef912bd79e777f97d353aa50474b6 (patch)
tree5f4792d164e62e4b9a257811dd259cc40c053683 /mailnews/compose
parent05667b0d48b50f434ea48a3065adea6c0a88f226 (diff)
downloadUXP-cea77b76b3fef912bd79e777f97d353aa50474b6.tar
UXP-cea77b76b3fef912bd79e777f97d353aa50474b6.tar.gz
UXP-cea77b76b3fef912bd79e777f97d353aa50474b6.tar.lz
UXP-cea77b76b3fef912bd79e777f97d353aa50474b6.tar.xz
UXP-cea77b76b3fef912bd79e777f97d353aa50474b6.zip
Bug 1333038 - Use 'modern' pointers to fix crash due to nsMsgLineStreamBuffer object being deleted while still in use.
Suspected "use after free" in nsMsgLineStreamBuffer::ReadNextLine() leading to crash since object may be destroyed while still in use on another thread. Tag #1273
Diffstat (limited to 'mailnews/compose')
-rw-r--r--mailnews/compose/src/nsSmtpProtocol.cpp1
-rw-r--r--mailnews/compose/src/nsSmtpProtocol.h2
2 files changed, 1 insertions, 2 deletions
diff --git a/mailnews/compose/src/nsSmtpProtocol.cpp b/mailnews/compose/src/nsSmtpProtocol.cpp
index 04347c1d0..522890c78 100644
--- a/mailnews/compose/src/nsSmtpProtocol.cpp
+++ b/mailnews/compose/src/nsSmtpProtocol.cpp
@@ -236,7 +236,6 @@ nsSmtpProtocol::~nsSmtpProtocol()
{
// free our local state
PR_Free(m_dataBuf);
- delete m_lineStreamBuffer;
}
void nsSmtpProtocol::Initialize(nsIURI * aURL)
diff --git a/mailnews/compose/src/nsSmtpProtocol.h b/mailnews/compose/src/nsSmtpProtocol.h
index c8cbf1406..b1370d4be 100644
--- a/mailnews/compose/src/nsSmtpProtocol.h
+++ b/mailnews/compose/src/nsSmtpProtocol.h
@@ -143,7 +143,7 @@ private:
int32_t m_previousResponseCode;
int32_t m_continuationResponse;
nsCString m_responseText; /* text returned from Smtp server */
- nsMsgLineStreamBuffer *m_lineStreamBuffer; // used to efficiently extract lines from the incoming data stream
+ RefPtr<nsMsgLineStreamBuffer> m_lineStreamBuffer; // used to efficiently extract lines from the incoming data stream
nsTArray<nsCString> m_addresses;
uint32_t m_addressesLeft;