qga: Fix ubsan warning
When compiling QEMU with --enable-ubsan there is a undefined behavior warning when running "make check": .../qga/commands-linux.c:452:15: runtime error: applying non-zero offset 5 to null pointer #0 0x55ea7b89450c in build_guest_fsinfo_for_pci_dev ..../qga/commands-linux.c:452:15 Fix it by avoiding the additional pointer variable here and use an "offset" integer variable instead. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Kostiantyn Kostiuk <kkostiuk@redhat.com> Link: https://lore.kernel.org/qemu-devel/20250730072709.27077-1-thuth@redhat.com Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
This commit is contained in:
parent
e771ba98de
commit
83f6dceb8f
1 changed files with 5 additions and 5 deletions
|
|
@ -400,10 +400,10 @@ static bool build_guest_fsinfo_for_pci_dev(char const *syspath,
|
|||
Error **errp)
|
||||
{
|
||||
unsigned int pci[4], host, hosts[8], tgt[3];
|
||||
int i, nhosts = 0, pcilen;
|
||||
int i, offset, nhosts = 0, pcilen;
|
||||
GuestPCIAddress *pciaddr = disk->pci_controller;
|
||||
bool has_ata = false, has_host = false, has_tgt = false;
|
||||
char *p, *q, *driver = NULL;
|
||||
char *p, *driver = NULL;
|
||||
bool ret = false;
|
||||
|
||||
p = strstr(syspath, "/devices/pci");
|
||||
|
|
@ -445,13 +445,13 @@ static bool build_guest_fsinfo_for_pci_dev(char const *syspath,
|
|||
|
||||
p = strstr(syspath, "/ata");
|
||||
if (p) {
|
||||
q = p + 4;
|
||||
offset = 4;
|
||||
has_ata = true;
|
||||
} else {
|
||||
p = strstr(syspath, "/host");
|
||||
q = p + 5;
|
||||
offset = 5;
|
||||
}
|
||||
if (p && sscanf(q, "%u", &host) == 1) {
|
||||
if (p && sscanf(p + offset, "%u", &host) == 1) {
|
||||
has_host = true;
|
||||
nhosts = build_hosts(syspath, p, has_ata, hosts,
|
||||
ARRAY_SIZE(hosts), errp);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue