summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorreed@google.com <reed@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-09 20:19:43 +0000
committerreed@google.com <reed@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-09 20:19:43 +0000
commit140ba6be05157d66dc9a9851ce2d4250eeea2462 (patch)
tree58eb1f6dfbb4316a5b2512d2f86ff7e388c358be /cc
parentf8a6ac3b20f0d1e9779eeee0ac46a9fa51f256d9 (diff)
downloadchromium_src-140ba6be05157d66dc9a9851ce2d4250eeea2462.zip
chromium_src-140ba6be05157d66dc9a9851ce2d4250eeea2462.tar.gz
chromium_src-140ba6be05157d66dc9a9851ce2d4250eeea2462.tar.bz2
Check for bad buffer before sending it to skia (null check, 4-byte-align check)
Motivated during investigation of http://crbug.com/226750 Review URL: https://chromiumcodereview.appspot.com/13947012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193191 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r--cc/resources/tile_manager.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc
index e5d5bfa..5ef1e0a 100644
--- a/cc/resources/tile_manager.cc
+++ b/cc/resources/tile_manager.cc
@@ -792,6 +792,10 @@ void TileManager::DispatchOneRasterTask(scoped_refptr<Tile> tile) {
uint8* buffer =
resource_pool_->resource_provider()->MapPixelBuffer(resource_id);
+ CHECK(buffer);
+ // skia requires that our buffer be 4-byte aligned
+ CHECK(!(reinterpret_cast<intptr_t>(buffer) & 3));
+
ManagedTileState& managed_tile_state = tile->managed_state();
raster_worker_pool_->PostRasterTaskAndReply(
tile->picture_pile(),