No description
Find a file
Marc Zyngier 8f1a2803e4 KVM: arm/arm64: vgic-its: Fix potential overrun in vgic_copy_lpi_list
commit 7d8b44c54e upstream.

vgic_copy_lpi_list() parses the LPI list and picks LPIs targeting
a given vcpu. We allocate the array containing the intids before taking
the lpi_list_lock, which means we can have an array size that is not
equal to the number of LPIs.

This is particularly obvious when looking at the path coming from
vgic_enable_lpis, which is not a command, and thus can run in parallel
with commands:

vcpu 0:                                        vcpu 1:
vgic_enable_lpis
  its_sync_lpi_pending_table
    vgic_copy_lpi_list
      intids = kmalloc_array(irq_count)
                                               MAPI(lpi targeting vcpu 0)
      list_for_each_entry(lpi_list_head)
        intids[i++] = irq->intid;

At that stage, we will happily overrun the intids array. Boo. An easy
fix is is to break once the array is full. The MAPI command will update
the config anyway, and we won't miss a thing. We also make sure that
lpi_list_count is read exactly once, so that further updates of that
value will not affect the array bound check.

Cc: stable@vger.kernel.org
Fixes: ccb1d791ab ("KVM: arm64: vgic-its: Fix pending table sync")
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-04-24 09:36:23 +02:00
arch ARM64: dts: meson: reduce odroid-c2 eMMC maximum rate 2018-04-24 09:36:23 +02:00
block blk-mq: don't keep offline CPUs mapped to hctx 0 2018-04-19 08:56:20 +02:00
certs
crypto crypto: aes-generic - build with -Os on gcc-7+ 2018-04-12 12:32:20 +02:00
Documentation serial: 8250: Add Nuvoton NPCM UART 2018-04-08 14:26:30 +02:00
drivers usb: gadget: udc: core: update usb_ep_queue() documentation 2018-04-24 09:36:23 +02:00
firmware
fs fs/reiserfs/journal.c: add missing resierfs_warning() arg 2018-04-24 09:36:22 +02:00
include task_struct: only use anon struct under randstruct plugin 2018-04-24 09:36:22 +02:00
init kmemcheck: stop using GFP_NOTRACK and SLAB_NOTRACK 2018-02-22 15:42:23 +01:00
ipc ipc/shm: fix use-after-free of shm file via remap_file_pages() 2018-04-24 09:36:23 +02:00
kernel resource: fix integer overflow at reallocation 2018-04-24 09:36:22 +02:00
lib lib: fix stall in __bitmap_parselist() 2018-04-19 08:56:20 +02:00
mm mm, slab: reschedule cache_reap() on the same CPU 2018-04-24 09:36:23 +02:00
net sunrpc: remove incorrect HMAC request initialization 2018-04-19 08:56:20 +02:00
samples samples/bpf: adjust rlimit RLIMIT_MEMLOCK for xdp1 2017-12-20 10:10:31 +01:00
scripts kbuild: fix linker feature test macros when cross compiling with Clang 2018-03-24 11:01:29 +01:00
security apparmor: fix resource audit messages when auditing peer 2018-04-19 08:56:18 +02:00
sound ASoC: Intel: sst: Fix the return value of 'sst_send_byte_stream_mrfld()' 2018-04-12 12:32:17 +02:00
tools perf intel-pt: Fix timestamp following overflow 2018-04-19 08:56:17 +02:00
usr
virt KVM: arm/arm64: vgic-its: Fix potential overrun in vgic_copy_lpi_list 2018-04-24 09:36:23 +02:00
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore kbuild: rpm-pkg: keep spec file until make mrproper 2018-02-13 10:19:46 +01:00
.mailmap .mailmap: Add Maciej W. Rozycki's Imagination e-mail address 2017-11-10 12:16:15 -08:00
COPYING
CREDITS MAINTAINERS: update TPM driver infrastructure changes 2017-11-09 17:58:40 -08:00
Kbuild
Kconfig
MAINTAINERS dt-bindings: Document mti,mips-cpc binding 2018-03-15 10:54:35 +01:00
Makefile Linux 4.14.35 2018-04-19 08:56:21 +02:00
README

Linux kernel
============

This file was moved to Documentation/admin-guide/README.rst

Please notice that there are several guides for kernel developers and users.
These guides can be rendered in a number of formats, like HTML and PDF.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.