qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] system/physmem: Silence warning from ubsan
@ 2025-07-28 17:25 Thomas Huth
  2025-07-28 18:43 ` Philippe Mathieu-Daudé
  2025-07-28 18:44 ` David Hildenbrand
  0 siblings, 2 replies; 4+ messages in thread
From: Thomas Huth @ 2025-07-28 17:25 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Peter Xu, David Hildenbrand
  Cc: Philippe Mathieu-Daudé

From: Thomas Huth <thuth@redhat.com>

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.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 system/physmem.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/system/physmem.c b/system/physmem.c
index 130c148ffb5..00333ffa7f7 100644
--- a/system/physmem.c
+++ b/system/physmem.c
@@ -3240,8 +3240,10 @@ static inline MemTxResult address_space_write_rom_internal(AddressSpace *as,
             }
         }
         len -= l;
-        buf += l;
         addr += l;
+        if (buf) {
+            buf += l;
+        }
     }
     return MEMTX_OK;
 }
-- 
2.50.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-07-29 21:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-28 17:25 [PATCH] system/physmem: Silence warning from ubsan Thomas Huth
2025-07-28 18:43 ` Philippe Mathieu-Daudé
2025-07-29 19:21   ` Peter Xu
2025-07-28 18:44 ` David Hildenbrand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).