| OLD | NEW |
| 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 #include "../include/fsdk_define.h" | 7 #include "../include/fsdk_define.h" |
| 8 #include "../include/fsdk_mgr.h" | 8 #include "../include/fsdk_mgr.h" |
| 9 #include "../include/fpdfview.h" | 9 #include "../include/fpdfview.h" |
| 10 #include "../include/fsdk_rendercontext.h" | 10 #include "../include/fsdk_rendercontext.h" |
| 11 #include "../include/fpdf_progressive.h" | 11 #include "../include/fpdf_progressive.h" |
| 12 #include "../include/fpdf_ext.h" | 12 #include "../include/fpdf_ext.h" |
| 13 #include "../../../core/src/fxcrt/fx_safe_types.h" | 13 #include "../../../core/src/fxcrt/fx_safe_types.h" |
| 14 #include "../../third_party/numerics/safe_conversions_impl.h" | 14 #include "../../third_party/base/numerics/safe_conversions_impl.h" |
| 15 | 15 |
| 16 CPDF_CustomAccess::CPDF_CustomAccess(FPDF_FILEACCESS* pFileAccess) | 16 CPDF_CustomAccess::CPDF_CustomAccess(FPDF_FILEACCESS* pFileAccess) |
| 17 { | 17 { |
| 18 if (pFileAccess) | 18 if (pFileAccess) |
| 19 m_FileAccess = *pFileAccess; | 19 m_FileAccess = *pFileAccess; |
| 20 } | 20 } |
| 21 | 21 |
| 22 FX_BOOL CPDF_CustomAccess::ReadBlock(void* buffer, FX_FILESIZE offset, size_t si
ze) | 22 FX_BOOL CPDF_CustomAccess::ReadBlock(void* buffer, FX_FILESIZE offset, size_t si
ze) |
| 23 { | 23 { |
| 24 if (offset < 0) { | 24 if (offset < 0) { |
| 25 return FALSE; | 25 return FALSE; |
| 26 } | 26 } |
| 27 FX_SAFE_FILESIZE newPos = base::checked_cast<FX_FILESIZE, size_t>(size); | 27 FX_SAFE_FILESIZE newPos = pdfium::base::checked_cast<FX_FILESIZE, size_t>(si
ze); |
| 28 newPos += offset; | 28 newPos += offset; |
| 29 if (!newPos.IsValid() || newPos.ValueOrDie() > m_FileAccess.m_FileLen) { | 29 if (!newPos.IsValid() || newPos.ValueOrDie() > m_FileAccess.m_FileLen) { |
| 30 return FALSE; | 30 return FALSE; |
| 31 } | 31 } |
| 32 return m_FileAccess.m_GetBlock(m_FileAccess.m_Param, offset,(FX_LPBYTE) buff
er, size); | 32 return m_FileAccess.m_GetBlock(m_FileAccess.m_Param, offset,(FX_LPBYTE) buff
er, size); |
| 33 } | 33 } |
| 34 | 34 |
| 35 //0 bit: FPDF_POLICY_MACHINETIME_ACCESS | 35 //0 bit: FPDF_POLICY_MACHINETIME_ACCESS |
| 36 static FX_DWORD foxit_sandbox_policy = 0xFFFFFFFF; | 36 static FX_DWORD foxit_sandbox_policy = 0xFFFFFFFF; |
| 37 | 37 |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 public: | 203 public: |
| 204 CMemFile(FX_BYTE* pBuf, FX_FILESIZE size):m_pBuf(pBuf),m_size(size) {} | 204 CMemFile(FX_BYTE* pBuf, FX_FILESIZE size):m_pBuf(pBuf),m_size(size) {} |
| 205 | 205 |
| 206 virtual void Release() {delete this;} | 206 virtual void Release() {delete this;} |
| 207 virtual FX_FILESIZE GetSize() {return m_size;} | 207 virtual FX_FILESIZE GetSize() {return m_size;} |
| 208 virtual FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offs
et, size_t size) | 208 virtual FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offs
et, size_t size) |
| 209 { | 209 { |
| 210 if (offset < 0) { | 210 if (offset < 0) { |
| 211 return FALSE; | 211 return FALSE; |
| 212 } | 212 } |
| 213 FX_SAFE_FILESIZE newPos = base::checked_cast<FX_FILESIZE, size_t>(si
ze); | 213 FX_SAFE_FILESIZE newPos = pdfium::base::checked_cast<FX_FILESIZE, si
ze_t>(size); |
| 214 newPos += offset; | 214 newPos += offset; |
| 215 if (!newPos.IsValid() || newPos.ValueOrDie() > (FX_DWORD)m_size) { | 215 if (!newPos.IsValid() || newPos.ValueOrDie() > (FX_DWORD)m_size) { |
| 216 return FALSE; | 216 return FALSE; |
| 217 } | 217 } |
| 218 FXSYS_memcpy(buffer, m_pBuf+offset, size); | 218 FXSYS_memcpy(buffer, m_pBuf+offset, size); |
| 219 return TRUE; | 219 return TRUE; |
| 220 } | 220 } |
| 221 private: | 221 private: |
| 222 FX_BYTE* m_pBuf; | 222 FX_BYTE* m_pBuf; |
| 223 FX_FILESIZE m_size; | 223 FX_FILESIZE m_size; |
| (...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 860 if (!buffer) { | 860 if (!buffer) { |
| 861 buflen = len; | 861 buflen = len; |
| 862 } else if (buflen >= len) { | 862 } else if (buflen >= len) { |
| 863 memcpy(buffer, utf16Name.c_str(), len); | 863 memcpy(buffer, utf16Name.c_str(), len); |
| 864 buflen = len; | 864 buflen = len; |
| 865 } else { | 865 } else { |
| 866 buflen = -1; | 866 buflen = -1; |
| 867 } | 867 } |
| 868 return (FPDF_DEST)pDestObj; | 868 return (FPDF_DEST)pDestObj; |
| 869 } | 869 } |
| OLD | NEW |