summaryrefslogtreecommitdiffstats
path: root/o3d
diff options
context:
space:
mode:
authorgman@google.com <gman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-09 22:45:05 +0000
committergman@google.com <gman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-09 22:45:05 +0000
commit672606d6d4197b45b4239249b53b4c386e26f5a7 (patch)
treee2cceda6ed7daa9b3795ec7970e03cb9248755e5 /o3d
parentd3f665783018ad6832b224d108640a0be2b1f248 (diff)
downloadchromium_src-672606d6d4197b45b4239249b53b4c386e26f5a7.zip
chromium_src-672606d6d4197b45b4239249b53b4c386e26f5a7.tar.gz
chromium_src-672606d6d4197b45b4239249b53b4c386e26f5a7.tar.bz2
Check for value overlow in buffer.cc
http://b/issue?id=2106717 Review URL: http://codereview.chromium.org/194059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25804 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'o3d')
-rw-r--r--o3d/core/cross/buffer.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/o3d/core/cross/buffer.cc b/o3d/core/cross/buffer.cc
index 6847fc2..4c0071e 100644
--- a/o3d/core/cross/buffer.cc
+++ b/o3d/core/cross/buffer.cc
@@ -159,6 +159,13 @@ bool Buffer::AllocateElements(unsigned num_elements) {
}
size_t size_in_bytes = num_elements * stride_;
+ // Check for size_t overflow.
+ if (size_in_bytes / stride_ != num_elements) {
+ O3D_ERROR(service_locator())
+ << "Attempt to allocate too many elements for the current set of "
+ << "fields on buffer.";
+ return false;
+ }
if (size_in_bytes == 0) {
O3D_ERROR(service_locator())