]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
system/physmem: Silence warning from ubsan
authorThomas Huth <thuth@redhat.com>
Mon, 28 Jul 2025 17:25:45 +0000 (19:25 +0200)
committerThomas Huth <thuth@redhat.com>
Tue, 9 Sep 2025 07:35:55 +0000 (09:35 +0200)
When compiling QEMU with --enable-ubsan there is a undefined behavior
warning when running the bios-tables-test for example:

 .../system/physmem.c:3243:13: runtime error: applying non-zero offset 262144 to null pointer
    #0 0x55ac1df5fbc4 in address_space_write_rom_internal .../system/physmem.c:3243:13

The problem is that buf is indeed NULL if the function is e.g. called
with type == FLUSH_CACHE. Add a check to fix the issue.

Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250728172545.314178-1-thuth@redhat.com>

system/physmem.c

index f498572fc821fe16bfd4ae1eb662d47cfe64ebbd..311011156c7db4340ef145a6a251884f141152ad 100644 (file)
@@ -3231,8 +3231,10 @@ static inline MemTxResult address_space_write_rom_internal(AddressSpace *as,
             }
         }
         len -= l;
-        buf += l;
         addr += l;
+        if (buf) {
+            buf += l;
+        }
     }
     return MEMTX_OK;
 }