Index: fpdfsdk/fpdfview.cpp |
diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp |
index 020ff8df6d57c8bc39d52c914b7d1754013b0cca..e7b3a96b0b3cbcaa38a39da74b1c3317b107c13f 100644 |
--- a/fpdfsdk/fpdfview.cpp |
+++ b/fpdfsdk/fpdfview.cpp |
@@ -464,15 +464,16 @@ DLLEXPORT FPDF_BOOL STDCALL FPDF_GetFileVersion(FPDF_DOCUMENT doc, |
// header). |
DLLEXPORT unsigned long STDCALL FPDF_GetDocPermissions(FPDF_DOCUMENT document) { |
CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document); |
- if (!pDoc || !pDoc->GetParser()) |
+ // https://bugs.chromium.org/p/pdfium/issues/detail?id=499 |
+ if (!pDoc) { |
#ifndef PDF_ENABLE_XFA |
return 0; |
#else // PDF_ENABLE_XFA |
- return (uint32_t)-1; |
+ return 0xFFFFFFFF; |
#endif // PDF_ENABLE_XFA |
+ } |
- CPDF_Dictionary* pDict = pDoc->GetParser()->GetEncryptDict(); |
- return pDict ? pDict->GetIntegerBy("P") : (uint32_t)-1; |
+ return pDoc->GetUserPermissions(); |
} |
DLLEXPORT int STDCALL FPDF_GetSecurityHandlerRevision(FPDF_DOCUMENT document) { |