On 11/14/23 12:55, Patrick Venture wrote:
Avoids unaligned pointer issues.

Reviewed-by: Chris Rauer <cra...@google.com>
Reviewed-by: Peter Foley <pefo...@google.com>
Signed-off-by: Patrick Venture <vent...@google.com>
---
  system/memory.c | 16 ++++++++--------
  1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/system/memory.c b/system/memory.c
index 304fa843ea..02c97d5187 100644
--- a/system/memory.c
+++ b/system/memory.c
@@ -1343,16 +1343,16 @@ static uint64_t memory_region_ram_device_read(void 
*opaque,
switch (size) {
      case 1:
-        data = *(uint8_t *)(mr->ram_block->host + addr);
+        memcpy(&data, mr->ram_block->host + addr, sizeof(uint8_t));


This is incorrect, especially for big-endian hosts.

You want to use "qemu/bswap.h", ld*_he_p(), st*_he_p().


r~

Reply via email to