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~