| 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 2f834ea400b8f3be2e1f3a313dabf30676746180..9fa26d87ae767ebd6fa21aa9906ad1223c3d2a3b 100644
|
| --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
|
| +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
|
| @@ -1003,7 +1003,15 @@ FX_BOOL CPDF_Parser::LoadCrossRefV5(FX_FILESIZE pos, FX_FILESIZE& prev, FX_BOOL
|
| return FALSE;
|
| }
|
| if (m_pDocument) {
|
| - m_pDocument->InsertIndirectObject(pStream->m_ObjNum, pStream);
|
| + CPDF_Dictionary * pDict = m_pDocument->GetRoot();
|
| + if (!pDict || pDict->GetObjNum() != pStream->m_ObjNum) {
|
| + m_pDocument->InsertIndirectObject(pStream->m_ObjNum, pStream);
|
| + } else {
|
| + if (pStream->GetType() == PDFOBJ_STREAM) {
|
| + pStream->Release();
|
| + }
|
| + return FALSE;
|
| + }
|
| }
|
| if (pStream->GetType() != PDFOBJ_STREAM) {
|
| return FALSE;
|
|
|