diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2017-04-11 08:25:22 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2017-04-29 22:39:23 +1000 |
commit | a7cb78bab3671dbad08e5b2f5fd83a6dbda90fe5 (patch) | |
tree | f744107295dfc8a9841f835b838b420992b8bae8 /drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c | |
parent | eef4988ab4c1a99e88e535502a67763a78d51515 (diff) | |
download | op-kernel-dev-a7cb78bab3671dbad08e5b2f5fd83a6dbda90fe5.zip op-kernel-dev-a7cb78bab3671dbad08e5b2f5fd83a6dbda90fe5.tar.gz |
drm/nouveau/bios/bitP: check that table is long enough for optional pointers
Fixes OOB VBIOS accesses on some boards.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c index 617bfff..03d2f97 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c @@ -33,7 +33,7 @@ nvbios_power_budget_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u32 power_budget; if (bit_entry(bios, 'P', &bit_P) || bit_P.version != 2 || - bit_P.length < 0x2c) + bit_P.length < 0x30) return 0; power_budget = nvbios_rd32(bios, bit_P.offset + 0x2c); |