summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Palmer <palmer@google.com>2014-07-31 12:08:56 -0700
committerBo Xu <bo_xu@foxitsoftware.com>2014-08-11 14:51:52 -0700
commit5a7eb44f1bcfe843f7810acf60fa6c59bd13ded2 (patch)
tree721a42ef7f98c92672fbedf9b82a590e3e9a2c88
parentb1a807fddac0047740e3ebefd24de22d3a390266 (diff)
downloadpdfium-5a7eb44f1bcfe843f7810acf60fa6c59bd13ded2.tar.xz
Correct the names of the FX_SAFE_* typedefs.
R=jun_fang@foxitsoftware.com Review URL: https://codereview.chromium.org/417263008
-rw-r--r--core/include/fxcrt/fx_system.h6
-rw-r--r--core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp9
-rw-r--r--core/src/fxcrt/extension.h6
3 files changed, 15 insertions, 6 deletions
diff --git a/core/include/fxcrt/fx_system.h b/core/include/fxcrt/fx_system.h
index 391380304c..6d659e2c10 100644
--- a/core/include/fxcrt/fx_system.h
+++ b/core/include/fxcrt/fx_system.h
@@ -277,9 +277,9 @@ int FXSYS_round(FX_FLOAT f);
};
#include "../../../third_party/numerics/safe_math.h"
-typedef base::CheckedNumeric<FX_DWORD> FX_SAFE_DWORD;
-typedef base::CheckedNumeric<FX_INT32> FX_SAFE_INT;
-typedef base::CheckedNumeric<size_t> FX_SAFE_SIZET;
+typedef base::CheckedNumeric<FX_DWORD> FX_SAFE_DWORD;
+typedef base::CheckedNumeric<FX_INT32> FX_SAFE_INT32;
+typedef base::CheckedNumeric<size_t> FX_SAFE_SIZE_T;
#if defined(__clang__) || _MSC_VER >= 1700
#define FX_FINAL final
#elif defined(__GNUC__) && __cplusplus >= 201103 && \
diff --git a/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp b/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
index ae96148345..d2172bf1b8 100644
--- a/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
+++ b/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
@@ -1203,6 +1203,15 @@ void CPDF_DIBSource::DownSampleScanline(int line, FX_LPBYTE dest_scan, int dest_
FXSYS_memset32(dest_scan, 0xff, dest_Bpp * clip_width);
return;
}
+
+ FX_SAFE_INT32 max_src_x = clip_left;
+ max_src_x += clip_width - 1;
+ max_src_x *= src_width;
+ max_src_x /= dest_width;
+ if (!max_src_x.IsValid()) {
+ return;
+ }
+
CFX_FixedBufGrow<FX_BYTE, 128> temp(orig_Bpp);
if (bpc * m_nComponents == 1) {
FX_DWORD set_argb = (FX_DWORD) - 1, reset_argb = 0;
diff --git a/core/src/fxcrt/extension.h b/core/src/fxcrt/extension.h
index d5659e5d29..598590e3e4 100644
--- a/core/src/fxcrt/extension.h
+++ b/core/src/fxcrt/extension.h
@@ -238,7 +238,7 @@ public:
offset = safeOffset.ValueOrDie();
- FX_SAFE_SIZET newPos = size;
+ FX_SAFE_SIZE_T newPos = size;
newPos += offset;
if (!newPos.IsValid() || newPos.ValueOrDefault(0) == 0 || newPos.ValueOrDie() >= m_nCurSize) {
return FALSE;
@@ -289,7 +289,7 @@ public:
offset += (FX_FILESIZE)m_nOffset;
}
if (m_dwFlags & FX_MEMSTREAM_Consecutive) {
- FX_SAFE_SIZET newPos = size;
+ FX_SAFE_SIZE_T newPos = size;
newPos += offset;
if (!newPos.IsValid())
return FALSE;
@@ -316,7 +316,7 @@ public:
return TRUE;
}
- FX_SAFE_SIZET newPos = size;
+ FX_SAFE_SIZE_T newPos = size;
newPos += offset;
if (!newPos.IsValid()) {
return FALSE;