| Index: core/src/fpdfapi/fpdf_edit/fpdf_edit_create.cpp
|
| diff --git a/core/src/fpdfapi/fpdf_edit/fpdf_edit_create.cpp b/core/src/fpdfapi/fpdf_edit/fpdf_edit_create.cpp
|
| index bdbcccdf06dc5d47cc9832e2648e85a6524743db..9eec7aa4a8317dbd9374d24d23e8bc277e6e8c55 100644
|
| --- a/core/src/fpdfapi/fpdf_edit/fpdf_edit_create.cpp
|
| +++ b/core/src/fpdfapi/fpdf_edit/fpdf_edit_create.cpp
|
| @@ -334,7 +334,7 @@ void CPDF_FlateEncoder::CloneDict()
|
| FX_BOOL CPDF_FlateEncoder::Initialize(CPDF_Stream* pStream, FX_BOOL bFlateEncode)
|
| {
|
| m_Acc.LoadAllData(pStream, TRUE);
|
| - if (pStream->GetDict()->KeyExist("Filter") || !bFlateEncode) {
|
| + if ((pStream && pStream->GetDict() && pStream->GetDict()->KeyExist("Filter")) || !bFlateEncode) {
|
| if (pStream->GetDict()->KeyExist("Filter") && !bFlateEncode) {
|
| CPDF_StreamAcc destAcc;
|
| destAcc.LoadAllData(pStream);
|
| @@ -1482,7 +1482,8 @@ FX_INT32 CPDF_Creator::WriteDoc_Stage1(IFX_Pause *pPause)
|
| if (m_bSecurityChanged && (m_dwFlags & FPDFCREATE_NO_ORIGINAL) == 0) {
|
| m_dwFlags &= ~FPDFCREATE_INCREMENTAL;
|
| }
|
| - m_pMetadata = m_pDocument->GetRoot()->GetElementValue(FX_BSTRC("Metadata"));
|
| + CPDF_Dictionary* pDict = m_pDocument->GetRoot();
|
| + m_pMetadata = pDict ? pDict->GetElementValue(FX_BSTRC("Metadata")) : NULL;
|
| if (m_dwFlags & FPDFCREATE_OBJECTSTREAM) {
|
| m_pXRefStream = FX_NEW CPDF_XRefStream;
|
| m_pXRefStream->Start();
|
| @@ -2032,7 +2033,7 @@ void CPDF_Creator::InitID(FX_BOOL bDefault )
|
| if (!m_pIDArray) {
|
| FX_LPDWORD pBuffer = NULL;
|
| m_pIDArray = CPDF_Array::Create();
|
| - CPDF_Object* pID1 = pOldIDArray->GetElement(0);
|
| + CPDF_Object* pID1 = pOldIDArray ? pOldIDArray->GetElement(0) : NULL;
|
| if (pID1) {
|
| m_pIDArray->Add(pID1->Clone());
|
| } else {
|
|
|