| Index: core/fpdfapi/parser/cpdf_parser.cpp
|
| diff --git a/core/fpdfapi/parser/cpdf_parser.cpp b/core/fpdfapi/parser/cpdf_parser.cpp
|
| index cff0f77b3247107d4a33d724480115955f432e67..96e59fb62fa900f13f4591e33fe442916878e227 100644
|
| --- a/core/fpdfapi/parser/cpdf_parser.cpp
|
| +++ b/core/fpdfapi/parser/cpdf_parser.cpp
|
| @@ -960,14 +960,16 @@ bool CPDF_Parser::LoadCrossRefV5(FX_FILESIZE* pos, bool bMainXRef) {
|
| if (!pObject)
|
| return false;
|
|
|
| - CPDF_Object* pUnownedObject = pObject.get();
|
| + uint32_t objnum = pObject->m_ObjNum;
|
| + if (!objnum)
|
| + return false;
|
|
|
| + CPDF_Object* pUnownedObject = pObject.get();
|
| if (m_pDocument) {
|
| CPDF_Dictionary* pRootDict = m_pDocument->GetRoot();
|
| - if (pRootDict && pRootDict->GetObjNum() == pObject->m_ObjNum)
|
| + if (pRootDict && pRootDict->GetObjNum() == objnum)
|
| return false;
|
| // Takes ownership of object (std::move someday).
|
| - uint32_t objnum = pObject->m_ObjNum;
|
| if (!m_pDocument->ReplaceIndirectObjectIfHigherGeneration(
|
| objnum, pObject.release())) {
|
| return false;
|
|
|