pci: Fix silent truncation of pcie_aer_inject_error argument
commit236aafa61c83d26cf9aa8b043ce92194f9be144b
authorMarkus Armbruster <armbru@redhat.com>
Thu, 1 Dec 2022 12:11:28 +0000 (1 13:11 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Mon, 19 Dec 2022 15:21:56 +0000 (19 16:21 +0100)
treeee012712b44a25278efdfe1db0286ff9a529b596
parent0bcaaff8d80fd00537bb7963a9baeedb68ec2ad4
pci: Fix silent truncation of pcie_aer_inject_error argument

PCI AER error status is 32 bit.  The HMP command supports both
symbolic and numeric error status: anything that isn't a known
symbolic value is parsed as number with strtol().  Issues:

* Empty argument yields value zero.

* Range errors from strtol() are ignored, value is UINT32_MAX.

* Values not representable in uint32_t are silently truncated.

Fix to reject such input by switching to strtoui().

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <20221201121133.3813857-9-armbru@redhat.com>
hw/pci/pcie_aer.c