diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-05-01 17:46:34 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-05-01 17:46:34 +0000 |
commit | 3f3c39d04fd68d8ce11f52baa3acae8e0522a2c4 (patch) | |
tree | 6126bc07b3e212f758dfa4e13462fb7bfaa6d97f /fpdfsdk/fpdf_save.cpp | |
parent | fe06d5109cd575c1e53b9b1cc3cc4ec3c5d7364f (diff) | |
download | pdfium-3f3c39d04fd68d8ce11f52baa3acae8e0522a2c4.tar.xz |
Check for NULL XFA context even when XFA
Use strict typing for FPDF_Page to ensure we don't fall into
code that expects the other page type when continuing from null
context case.
Change-Id: I7f028ef3e3d733f5557620030a87e22997da00d5
Reviewed-on: https://pdfium-review.googlesource.com/31770
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fpdfsdk/fpdf_save.cpp')
-rw-r--r-- | fpdfsdk/fpdf_save.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/fpdfsdk/fpdf_save.cpp b/fpdfsdk/fpdf_save.cpp index 2844f5a965..e4a1a607bb 100644 --- a/fpdfsdk/fpdf_save.cpp +++ b/fpdfsdk/fpdf_save.cpp @@ -227,10 +227,11 @@ bool FPDF_Doc_Save(FPDF_DOCUMENT document, return 0; #ifdef PDF_ENABLE_XFA - CPDFXFA_Context* pContext = - static_cast<CPDFXFA_Context*>(pPDFDoc->GetExtension()); - std::vector<RetainPtr<IFX_SeekableStream>> fileList; - SendPreSaveToXFADoc(pContext, &fileList); + auto* pContext = static_cast<CPDFXFA_Context*>(pPDFDoc->GetExtension()); + if (pContext) { + std::vector<RetainPtr<IFX_SeekableStream>> fileList; + SendPreSaveToXFADoc(pContext, &fileList); + } #endif // PDF_ENABLE_XFA if (flags < FPDF_INCREMENTAL || flags > FPDF_REMOVE_SECURITY) @@ -246,9 +247,11 @@ bool FPDF_Doc_Save(FPDF_DOCUMENT document, } bool bRet = fileMaker.Create(flags); + #ifdef PDF_ENABLE_XFA SendPostSaveToXFADoc(pContext); #endif // PDF_ENABLE_XFA + return bRet; } |