]> git.proxmox.com Git - mirror_edk2.git/commit
OvmfPkg/QemuVideoDxe: avoid arithmetic on null pointer
authorLaszlo Ersek <lersek@redhat.com>
Fri, 12 Apr 2019 14:13:48 +0000 (16:13 +0200)
committerLaszlo Ersek <lersek@redhat.com>
Thu, 18 Apr 2019 14:03:38 +0000 (16:03 +0200)
commit52d229238b2d3a24347d1ff9c2c3f884e51a3e1c
treece7fd2111cd239f4ee9690fe35e85fa46a23d20d
parent933f1990f583d82d89a626f49d341dccf6cba5f7
OvmfPkg/QemuVideoDxe: avoid arithmetic on null pointer

The real mode interrupt vector table, which we modify for the sake of
Windows 7, starts at address 0, which happens to be the representation of
null pointers on all edk2 architectures. A null pointer may never undergo
pointer arithmetic, and RH covscan justifiedly reports:

> Error: CPPCHECK_WARNING (CWE-682):
> edk2-89910a39dcfd/OvmfPkg/QemuVideoDxe/VbeShim.c:105:
> error[nullPointerArithmetic]: Pointer addition with NULL pointer.
> #  103|     //
> #  104|     Segment0Pages = 1;
> #  105|->   Int0x10       = (IVT_ENTRY *)(UINTN)Segment0 + 0x10;
> #  106|     Segment0AllocationStatus = gBS->AllocatePages (
> #  107|                                       AllocateAddress,

Fix this by calculating the EFI_PHYSICAL_ADDRESS of IVT entry 0x10 first,
and by casting the address to the right type second.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=1710
Issue: scan-1002.txt
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
OvmfPkg/QemuVideoDxe/VbeShim.c