[PATCH for-9.2] hw/vfio/pci.c: Use correct type in trace_vfio_msix_early_setup()

Peter Maydell posted 1 patch 3 months, 1 week ago
hw/vfio/trace-events | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH for-9.2] hw/vfio/pci.c: Use correct type in trace_vfio_msix_early_setup()
Posted by Peter Maydell 3 months, 1 week ago
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
Re: [PATCH for-9.2] hw/vfio/pci.c: Use correct type in trace_vfio_msix_early_setup()
Posted by Cédric Le Goater 2 months, 3 weeks ago
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.
Re: [PATCH for-9.2] hw/vfio/pci.c: Use correct type in trace_vfio_msix_early_setup()
Posted by Cédric Le Goater 2 months, 4 weeks ago
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"


Re: [PATCH for-9.2] hw/vfio/pci.c: Use correct type in trace_vfio_msix_early_setup()
Posted by Philippe Mathieu-Daudé 3 months, 1 week ago
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>