diff options
author | Xi Wang <xi.wang@gmail.com> | 2011-12-21 14:18:33 +0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-12-22 16:31:02 +0400 |
commit | 8a78389651b3e411ec5a7df61404734f52d6f4eb (patch) | |
tree | 02b5e5c5f43fb89c5faab8cd0e3bf5ebee49b7ae /kernel/time | |
parent | 77e00f2ea94abee1ad13bdfde19cf7aa25992b0e (diff) | |
download | linux-8a78389651b3e411ec5a7df61404734f52d6f4eb.tar.xz |
vmwgfx: fix incorrect VRAM size check in vmw_kms_fb_create()
Commit e133e737 didn't correctly fix the integer overflow issue.
- unsigned int required_size;
+ u64 required_size;
...
required_size = mode_cmd->pitch * mode_cmd->height;
- if (unlikely(required_size > dev_priv->vram_size)) {
+ if (unlikely(required_size > (u64) dev_priv->vram_size)) {
Note that both pitch and height are u32. Their product is still u32 and
would overflow before being assigned to required_size. A correct way is
to convert pitch and height to u64 before the multiplication.
required_size = (u64)mode_cmd->pitch * (u64)mode_cmd->height;
This patch calls the existing vmw_kms_validate_mode_vram() for
validation.
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Reviewed-and-tested-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'kernel/time')
0 files changed, 0 insertions, 0 deletions