summaryrefslogtreecommitdiff
path: root/core/include/fxcrt/fx_basic.h
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2015-05-18 14:18:08 -0700
committerTom Sepez <tsepez@chromium.org>2015-05-18 14:18:08 -0700
commit31b3a2b31a50f83ed100e01485013fd871399f45 (patch)
treeaeece5130880a698b56eec044d73925e7e5ae7f3 /core/include/fxcrt/fx_basic.h
parenta88e3a16ae711f6523ad3a40a08d774b72adc9eb (diff)
downloadpdfium-31b3a2b31a50f83ed100e01485013fd871399f45.tar.xz
Add safe FX_Alloc2D() macro
This avoids unchecked multiplications when computing a size argument to malloc(). Such an overflow is very scary, and can result in exploitable bugs. Along the way, kill off some return checks, since we know this can't return NULL. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1143663004
Diffstat (limited to 'core/include/fxcrt/fx_basic.h')
-rw-r--r--core/include/fxcrt/fx_basic.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/core/include/fxcrt/fx_basic.h b/core/include/fxcrt/fx_basic.h
index bd53d9e7a4..f258029a11 100644
--- a/core/include/fxcrt/fx_basic.h
+++ b/core/include/fxcrt/fx_basic.h
@@ -1454,10 +1454,7 @@ public:
while (nCount > 0) {
FX_INT32 temp_count = FX_MIN(nCount, FX_DATALIST_LENGTH);
DataList list;
- list.data = FX_Alloc(FX_BYTE, temp_count * unit);
- if (!list.data) {
- break;
- }
+ list.data = FX_Alloc2D(FX_BYTE, temp_count, unit);
list.start = nStart;
list.count = temp_count;
Append(list);