hw/vfio/trace-events | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
The tracepoint trace_vfio_msix_early_setup() uses "int" for the type
of the table_bar argument, but we use this to print a uint32_t.
Coverity warns that this means that we could end up treating it as a
negative number.
We only use this in printing the value in the tracepoint, so
mishandling it as a negative number would be harmless, but it's
better to use the right type in the tracepoint. Use uint64_t to
match how we print the table_offset in the vfio_msix_relo()
tracepoint.
Resolves: Coverity CID 1547690
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
hw/vfio/trace-events | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/vfio/trace-events b/hw/vfio/trace-events
index 98bd4dccead..c475c273fd8 100644
--- a/hw/vfio/trace-events
+++ b/hw/vfio/trace-events
@@ -27,7 +27,7 @@ vfio_vga_read(uint64_t addr, int size, uint64_t data) " (0x%"PRIx64", %d) = 0x%"
vfio_pci_read_config(const char *name, int addr, int len, int val) " (%s, @0x%x, len=0x%x) 0x%x"
vfio_pci_write_config(const char *name, int addr, int val, int len) " (%s, @0x%x, 0x%x, len=0x%x)"
vfio_msi_setup(const char *name, int pos) "%s PCI MSI CAP @0x%x"
-vfio_msix_early_setup(const char *name, int pos, int table_bar, int offset, int entries, bool noresize) "%s PCI MSI-X CAP @0x%x, BAR %d, offset 0x%x, entries %d, noresize %d"
+vfio_msix_early_setup(const char *name, int pos, int table_bar, uint64_t offset, int entries, bool noresize) "%s PCI MSI-X CAP @0x%x, BAR %d, offset 0x%"PRIx64", entries %d, noresize %d"
vfio_check_pcie_flr(const char *name) "%s Supports FLR via PCIe cap"
vfio_check_pm_reset(const char *name) "%s Supports PM reset"
vfio_check_af_flr(const char *name) "%s Supports FLR via AF cap"
--
2.34.1
On 8/15/24 15:52, Peter Maydell wrote: > The tracepoint trace_vfio_msix_early_setup() uses "int" for the type > of the table_bar argument, but we use this to print a uint32_t. > Coverity warns that this means that we could end up treating it as a > negative number. > > We only use this in printing the value in the tracepoint, so > mishandling it as a negative number would be harmless, but it's > better to use the right type in the tracepoint. Use uint64_t to > match how we print the table_offset in the vfio_msix_relo() > tracepoint. > > Resolves: Coverity CID 1547690 > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Applied to vfio-next. Thanks, C.
On 8/15/24 15:52, Peter Maydell wrote: > The tracepoint trace_vfio_msix_early_setup() uses "int" for the type > of the table_bar argument, but we use this to print a uint32_t. > Coverity warns that this means that we could end up treating it as a > negative number. > > We only use this in printing the value in the tracepoint, so > mishandling it as a negative number would be harmless, but it's > better to use the right type in the tracepoint. Use uint64_t to > match how we print the table_offset in the vfio_msix_relo() > tracepoint. > > Resolves: Coverity CID 1547690 Oh. I missed this issue. > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Cédric Le Goater <clg@redhat.com> Thanks, C. > --- > hw/vfio/trace-events | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/vfio/trace-events b/hw/vfio/trace-events > index 98bd4dccead..c475c273fd8 100644 > --- a/hw/vfio/trace-events > +++ b/hw/vfio/trace-events > @@ -27,7 +27,7 @@ vfio_vga_read(uint64_t addr, int size, uint64_t data) " (0x%"PRIx64", %d) = 0x%" > vfio_pci_read_config(const char *name, int addr, int len, int val) " (%s, @0x%x, len=0x%x) 0x%x" > vfio_pci_write_config(const char *name, int addr, int val, int len) " (%s, @0x%x, 0x%x, len=0x%x)" > vfio_msi_setup(const char *name, int pos) "%s PCI MSI CAP @0x%x" > -vfio_msix_early_setup(const char *name, int pos, int table_bar, int offset, int entries, bool noresize) "%s PCI MSI-X CAP @0x%x, BAR %d, offset 0x%x, entries %d, noresize %d" > +vfio_msix_early_setup(const char *name, int pos, int table_bar, uint64_t offset, int entries, bool noresize) "%s PCI MSI-X CAP @0x%x, BAR %d, offset 0x%"PRIx64", entries %d, noresize %d" > vfio_check_pcie_flr(const char *name) "%s Supports FLR via PCIe cap" > vfio_check_pm_reset(const char *name) "%s Supports PM reset" > vfio_check_af_flr(const char *name) "%s Supports FLR via AF cap"
On 15/8/24 15:52, Peter Maydell wrote: > The tracepoint trace_vfio_msix_early_setup() uses "int" for the type > of the table_bar argument, but we use this to print a uint32_t. > Coverity warns that this means that we could end up treating it as a > negative number. > > We only use this in printing the value in the tracepoint, so > mishandling it as a negative number would be harmless, but it's > better to use the right type in the tracepoint. Use uint64_t to > match how we print the table_offset in the vfio_msix_relo() > tracepoint. > > Resolves: Coverity CID 1547690 > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > hw/vfio/trace-events | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
© 2016 - 2024 Red Hat, Inc.