diff --git a/glamor/glamor_tile.c b/glamor/glamor_tile.c index 25ad63583..8fe4b3891 100644 --- a/glamor/glamor_tile.c +++ b/glamor/glamor_tile.c @@ -98,10 +98,14 @@ glamor_tile(PixmapPtr pixmap, PixmapPtr tile, glamor_pixmap_private *src_pixmap_priv; glamor_pixmap_private *dst_pixmap_priv; - src_pixmap_priv = glamor_get_pixmap_private(tile); dst_pixmap_priv = glamor_get_pixmap_private(pixmap); + if (((tile_x != 0) && (tile_x + width > tile->drawable.width)) + || ((tile_y != 0) && (tile_y + height > tile->drawable.height))) { + ErrorF("tile_x = %d tile_y = %d \n", tile_x, tile_y); + goto fail; + } if (glamor_priv->tile_prog == 0) { glamor_fallback("Tiling unsupported\n"); goto fail;