Index: core/src/fpdfapi/fpdf_parser/fpdf_parser_document.cpp |
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_document.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_document.cpp |
index a4982040bf1df95a9a0cf4a2eaa89bdc3a07554b..cd100a80cc07c56f61e210855819f39904fd4578 100644 |
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_document.cpp |
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_document.cpp |
@@ -61,11 +61,13 @@ void CPDF_Document::LoadAsynDoc(CPDF_Dictionary *pLinearized) |
{ |
m_bLinearized = TRUE; |
m_LastObjNum = m_pParser->GetLastObjNum(); |
- m_pRootDict = GetIndirectObject(m_pParser->GetRootObjNum())->GetDict(); |
+ CPDF_Object* indirectObj = GetIndirectObject(m_pParser->GetRootObjNum()); |
+ m_pRootDict = indirectObj ? indirectObj->GetDict() : NULL; |
if (m_pRootDict == NULL) { |
return; |
} |
- m_pInfoDict = GetIndirectObject(m_pParser->GetInfoObjNum())->GetDict(); |
+ indirectObj = GetIndirectObject(m_pParser->GetInfoObjNum()); |
+ m_pInfoDict = indirectObj ? indirectObj->GetDict() : NULL; |
CPDF_Array* pIDArray = m_pParser->GetIDArray(); |
if (pIDArray) { |
m_ID1 = pIDArray->GetString(0); |
@@ -336,7 +338,7 @@ FX_BOOL CPDF_Document::IsContentUsedElsewhere(FX_DWORD objnum, CPDF_Dictionary* |
if (pPageDict == pThisPageDict) { |
continue; |
} |
- CPDF_Object* pContents = pPageDict->GetElement(FX_BSTRC("Contents")); |
+ CPDF_Object* pContents = pPageDict ? pPageDict->GetElement(FX_BSTRC("Contents")) : NULL; |
if (pContents == NULL) { |
continue; |
} |