]> git.itanic.dy.fi Git - linux-stable/commit
cxl/pci: Handle excessive CDAT length
authorLukas Wunner <lukas@wunner.de>
Sat, 11 Mar 2023 14:40:04 +0000 (15:40 +0100)
committerDan Williams <dan.j.williams@intel.com>
Mon, 3 Apr 2023 23:16:49 +0000 (16:16 -0700)
commit4fe2c13d59d849be3b45371e3913ec5dc77fc0fb
tree50323597540ddc1ac7f92e2047bfcadef83ce3a8
parentb56faef2312057db20479b240eb71bd2e51fb51c
cxl/pci: Handle excessive CDAT length

If the length in the CDAT header is larger than the concatenation of the
header and all table entries, then the CDAT exposed to user space
contains trailing null bytes.

Not every consumer may be able to handle that.  Per Postel's robustness
principle, "be liberal in what you accept" and silently reduce the
cached length to avoid exposing those null bytes.

Fixes: c97006046c79 ("cxl/port: Read CDAT table")
Tested-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: stable@vger.kernel.org # v6.0+
Link: https://lore.kernel.org/r/6d98b3c7da5343172bd3ccabfabbc1f31c079d74.1678543498.git.lukas@wunner.de
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/cxl/core/pci.c