drm/nouveau: fix another off-by-one in nvbios_addr
authorTimur Tabi <ttabi@nvidia.com>
Wed, 11 May 2022 16:37:16 +0000 (11:37 -0500)
committerLyude Paul <lyude@redhat.com>
Thu, 2 Jun 2022 22:40:03 +0000 (18:40 -0400)
This check determines whether a given address is part of
image 0 or image 1.  Image 1 starts at offset image0_size,
so that address should be included.

Fixes: 4d4e9907ff572 ("drm/nouveau/bios: guard against out-of-bounds accesses to image")
Cc: <stable@vger.kernel.org> # v4.8+
Signed-off-by: Timur Tabi <ttabi@nvidia.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220511163716.3520591-1-ttabi@nvidia.com
drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c

index 64e423d..6c318e4 100644 (file)
@@ -33,7 +33,7 @@ nvbios_addr(struct nvkm_bios *bios, u32 *addr, u8 size)
 {
        u32 p = *addr;
 
-       if (*addr > bios->image0_size && bios->imaged_addr) {
+       if (*addr >= bios->image0_size && bios->imaged_addr) {
                *addr -= bios->image0_size;
                *addr += bios->imaged_addr;
        }