diff options
author | thestig <thestig@chromium.org> | 2016-05-19 15:36:36 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-05-19 15:36:36 -0700 |
commit | db9e49889d4129bbe96abdbce7dc3662e97a9df8 (patch) | |
tree | 5edcf8cd16fd7d89a6a1750f4f02e9b4af870c7f /core/fxcrt/fx_basic_list.cpp | |
parent | 80f25a5a8135933a405349ffc798d13273b3d690 (diff) | |
download | pdfium-db9e49889d4129bbe96abdbce7dc3662e97a9df8.tar.xz |
Fix a potential nullptr deref in CFX_MapPtrToPtr.
And also in CFX_PtrList.
BUG=596528
Review-Url: https://codereview.chromium.org/1991123002
Diffstat (limited to 'core/fxcrt/fx_basic_list.cpp')
-rw-r--r-- | core/fxcrt/fx_basic_list.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/core/fxcrt/fx_basic_list.cpp b/core/fxcrt/fx_basic_list.cpp index 02afd47112..f128176d00 100644 --- a/core/fxcrt/fx_basic_list.cpp +++ b/core/fxcrt/fx_basic_list.cpp @@ -73,12 +73,18 @@ void CFX_PtrList::FreeNode(CFX_PtrList::CNode* pNode) { RemoveAll(); } } + void CFX_PtrList::RemoveAll() { m_nCount = 0; - m_pNodeHead = m_pNodeTail = m_pNodeFree = NULL; - m_pBlocks->FreeDataChain(); - m_pBlocks = NULL; + m_pNodeHead = nullptr; + m_pNodeTail = nullptr; + m_pNodeFree = nullptr; + if (m_pBlocks) { + m_pBlocks->FreeDataChain(); + m_pBlocks = nullptr; + } } + CFX_PtrList::CNode* CFX_PtrList::NewNode(CFX_PtrList::CNode* pPrev, CFX_PtrList::CNode* pNext) { if (!m_pNodeFree) { |