Index: core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp |
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp |
index bc5d3edc2bbc6bcacd66680a15110eaf64899e14..7e6abd49a6257c0e901f85ed1b6a79232a8500fe 100644 |
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp |
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp |
@@ -987,16 +987,18 @@ FX_BOOL CPDF_Parser::LoadCrossRefV5(FX_FILESIZE* pos, FX_BOOL bMainXRef) { |
CPDF_Object* pObject = ParseIndirectObjectAt(m_pDocument, *pos, 0, nullptr); |
if (!pObject) |
return FALSE; |
- |
if (m_pDocument) { |
+ FX_BOOL bInserted = FALSE; |
CPDF_Dictionary* pDict = m_pDocument->GetRoot(); |
- if (!pDict || pDict->GetObjNum() != pObject->m_ObjNum) { |
- m_pDocument->InsertIndirectObject(pObject->m_ObjNum, pObject); |
- } else { |
+ if ((!pDict || pDict->GetObjNum() != pObject->m_ObjNum)) |
Tom Sepez
2015/12/10 17:32:13
nit: overparenthesized.
nit: use { here. The rule
jun_fang
2015/12/10 23:24:26
Acknowledged.
|
+ bInserted = m_pDocument->InsertIndirectObject(pObject->m_ObjNum, pObject); |
+ else { |
if (pObject->IsStream()) |
pObject->Release(); |
- return FALSE; |
+ bInserted = FALSE; |
Tom Sepez
2015/12/10 17:32:13
nit: bInserted is already false.
jun_fang
2015/12/10 23:24:26
Acknowledged.
|
} |
+ if (!bInserted) |
+ return FALSE; |
} |
CPDF_Stream* pStream = pObject->AsStream(); |
@@ -4556,7 +4558,8 @@ CPDF_Dictionary* CPDF_DataAvail::GetPage(int index) { |
if (!pPageDict) { |
return nullptr; |
} |
- m_pDocument->InsertIndirectObject(dwObjNum, pPageDict); |
+ if (!m_pDocument->InsertIndirectObject(dwObjNum, pPageDict)) |
+ return nullptr; |
return pPageDict->GetDict(); |
} |
} |