diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2018-01-10 17:03:35 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-01-10 17:03:35 +0000 |
commit | 54f86140d436ce2f457dc588f5b2c183d4e94452 (patch) | |
tree | fcdbc16dc792cdcfba7b28f607cec84a742d8e93 /xfa/fxfa/parser | |
parent | a408ac86ecad7086b3af6aa04d994cc4da16f52d (diff) | |
download | pdfium-54f86140d436ce2f457dc588f5b2c183d4e94452.tar.xz |
Verify GetOrCreate results are checked
This CL updates users of the GetOrCreate* methods to verify that the
value returned is not null before accessing.
Change-Id: I4a9fd29a26d5e4ec792ca3671c9868828e53d46e
Reviewed-on: https://pdfium-review.googlesource.com/22652
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fxfa/parser')
-rw-r--r-- | xfa/fxfa/parser/cxfa_fill.cpp | 3 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_font.cpp | 9 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_layoutpagemgr.cpp | 1 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_stroke.cpp | 3 |
4 files changed, 13 insertions, 3 deletions
diff --git a/xfa/fxfa/parser/cxfa_fill.cpp b/xfa/fxfa/parser/cxfa_fill.cpp index e6b289817e..c62006754f 100644 --- a/xfa/fxfa/parser/cxfa_fill.cpp +++ b/xfa/fxfa/parser/cxfa_fill.cpp @@ -62,6 +62,9 @@ bool CXFA_Fill::IsVisible() { void CXFA_Fill::SetColor(FX_ARGB color) { CXFA_Color* pNode = JSObject()->GetOrCreateProperty<CXFA_Color>(0, XFA_Element::Color); + if (!pNode) + return; + int a; int r; int g; diff --git a/xfa/fxfa/parser/cxfa_font.cpp b/xfa/fxfa/parser/cxfa_font.cpp index c78e926b27..694cb26147 100644 --- a/xfa/fxfa/parser/cxfa_font.cpp +++ b/xfa/fxfa/parser/cxfa_font.cpp @@ -124,9 +124,12 @@ bool CXFA_Font::IsItalic() { } void CXFA_Font::SetColor(FX_ARGB color) { - JSObject() - ->GetOrCreateProperty<CXFA_Fill>(0, XFA_Element::Fill) - ->SetColor(color); + CXFA_Fill* node = + JSObject()->GetOrCreateProperty<CXFA_Fill>(0, XFA_Element::Fill); + if (!node) + return; + + node->SetColor(color); } FX_ARGB CXFA_Font::GetColor() { diff --git a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp index 35a1bc8283..c5b7d52caa 100644 --- a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp +++ b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp @@ -290,6 +290,7 @@ bool CXFA_LayoutPageMgr::InitLayoutPage(CXFA_Node* pFormNode) { pTemplateNode->JSObject()->GetOrCreateProperty<CXFA_PageSet>( 0, XFA_Element::PageSet); ASSERT(m_pTemplatePageSetRoot); + if (m_pPageSetLayoutItemRoot) { m_pPageSetLayoutItemRoot->m_pParent = nullptr; m_pPageSetLayoutItemRoot->m_pFirstChild = nullptr; diff --git a/xfa/fxfa/parser/cxfa_stroke.cpp b/xfa/fxfa/parser/cxfa_stroke.cpp index 8085d3e489..c9c7d73f49 100644 --- a/xfa/fxfa/parser/cxfa_stroke.cpp +++ b/xfa/fxfa/parser/cxfa_stroke.cpp @@ -73,6 +73,9 @@ FX_ARGB CXFA_Stroke::GetColor() { void CXFA_Stroke::SetColor(FX_ARGB argb) { CXFA_Color* pNode = JSObject()->GetOrCreateProperty<CXFA_Color>(0, XFA_Element::Color); + if (!pNode) + return; + int a; int r; int g; |