Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(655)

Side by Side Diff: fpdfsdk/include/fpdfxfa/fpdfxfa_doc.h

Issue 1566903002: XFA: Change the destruction order inside CPDFXFA_Document to avoid UAFs. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: nits Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #ifndef FPDFXFA_DOC_H_ 7 #ifndef FPDFXFA_DOC_H_
8 #define FPDFXFA_DOC_H_ 8 #define FPDFXFA_DOC_H_
9 9
10 #include "../../../xfa/include/fxfa/fxfa.h" 10 #include "../../../xfa/include/fxfa/fxfa.h"
(...skipping 19 matching lines...) Expand all
30 IXFA_Doc* GetXFADoc() { return m_pXFADoc; } 30 IXFA_Doc* GetXFADoc() { return m_pXFADoc; }
31 IXFA_DocView* GetXFADocView() { return m_pXFADocView; } 31 IXFA_DocView* GetXFADocView() { return m_pXFADocView; }
32 32
33 int GetPageCount(); 33 int GetPageCount();
34 CPDFXFA_Page* GetPage(int page_index); 34 CPDFXFA_Page* GetPage(int page_index);
35 CPDFXFA_Page* GetPage(IXFA_PageView* pPage); 35 CPDFXFA_Page* GetPage(IXFA_PageView* pPage);
36 void RemovePage(CPDFXFA_Page* page); 36 void RemovePage(CPDFXFA_Page* page);
37 int GetDocType() { return m_iDocType; } 37 int GetDocType() { return m_iDocType; }
38 38
39 CPDFSDK_Document* GetSDKDocument(CPDFDoc_Environment* pFormFillEnv); 39 CPDFSDK_Document* GetSDKDocument(CPDFDoc_Environment* pFormFillEnv);
40 void ReleaseSDKDoc();
41 40
42 void FXRect2PDFRect(const CFX_RectF& fxRectF, CPDF_Rect& pdfRect); 41 void FXRect2PDFRect(const CFX_RectF& fxRectF, CPDF_Rect& pdfRect);
43 42
44 virtual void SetChangeMark(IXFA_Doc* hDoc); 43 virtual void SetChangeMark(IXFA_Doc* hDoc);
45 virtual FX_BOOL GetChangeMark(IXFA_Doc* hDoc); 44 virtual FX_BOOL GetChangeMark(IXFA_Doc* hDoc);
46 // used in dynamic xfa, dwFlags refer to XFA_INVALIDATE_XXX macros. 45 // used in dynamic xfa, dwFlags refer to XFA_INVALIDATE_XXX macros.
47 virtual void InvalidateRect(IXFA_PageView* pPageView, 46 virtual void InvalidateRect(IXFA_PageView* pPageView,
48 const CFX_RectF& rt, 47 const CFX_RectF& rt,
49 FX_DWORD dwFlags = 0); 48 FX_DWORD dwFlags = 0);
50 // used in static xfa, dwFlags refer to XFA_INVALIDATE_XXX macros. 49 // used in static xfa, dwFlags refer to XFA_INVALIDATE_XXX macros.
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 CPDF_Document* m_pPDFDoc; 219 CPDF_Document* m_pPDFDoc;
221 CPDFSDK_Document* m_pSDKDoc; 220 CPDFSDK_Document* m_pSDKDoc;
222 IXFA_Doc* m_pXFADoc; 221 IXFA_Doc* m_pXFADoc;
223 IXFA_DocView* m_pXFADocView; 222 IXFA_DocView* m_pXFADocView;
224 CPDFXFA_App* m_pApp; 223 CPDFXFA_App* m_pApp;
225 IJS_Context* m_pJSContext; 224 IJS_Context* m_pJSContext;
226 CFX_ArrayTemplate<CPDFXFA_Page*> m_XFAPageList; 225 CFX_ArrayTemplate<CPDFXFA_Page*> m_XFAPageList;
227 }; 226 };
228 227
229 #endif // FPDFXFA_DOC_H_ 228 #endif // FPDFXFA_DOC_H_
OLDNEW
« no previous file with comments | « no previous file | fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698