summaryrefslogtreecommitdiff
path: root/virt
diff options
context:
space:
mode:
authorRoss Lagerwall <ross.lagerwall@citrix.com>2019-01-28 10:04:24 +0000
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2019-02-20 10:34:35 +0100
commit45b14a4ffcc1e0b5caa246638f942cbe7eaea7ad (patch)
tree95147717a2c03aea85435616966bdb5a5db8e52f /virt
parent1c0d9b1c31d19d3aa90296a184e4624545d7d1ee (diff)
efi: cper: Fix possible out-of-bounds access
When checking a generic status block, we iterate over all the generic data blocks. The loop condition only checks that the start of the generic data block is valid (within estatus->data_length) but not the whole block. Because the size of data blocks (excluding error data) may vary depending on the revision and the revision is contained within the data block, ensure that enough of the current data block is valid before dereferencing any members otherwise an out-of-bounds access may occur if estatus->data_length is invalid. This relies on the fact that struct acpi_hest_generic_data_v300 is a superset of the earlier version. Also rework the other checks to avoid potential underflow. Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com> Acked-by: Borislav Petkov <bp@suse.de> Tested-by: Tyler Baicar <baicar.tyler@gmail.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions