- pci-host: designware: Limit value range of iATU viewport register - hmat acpi: Fix out of bounds access due to missing use of indirection - migration: Skip only empty block devices - aspeed/hace: Initialize g_autofree pointer - hw/net/vmxnet3: Fix guest-triggerable assert() - qxl: don't assert() if device isn't yet initialized - Avoid unaligned fetch in ladr_match() - linux-user: Fix waitid return of siginfo_t and rusage - hw/net/lan9118: Replace magic '2048' value by MIL_TXFIFO_SIZE definition - stdvga: fix screen blanking - virtio-net: drop too short packets early - ebpf: replace deprecated bpf_program__set_socket_filter - vhsot-user: only read reply of SET_LOG_BASE from vq 0 - cpu: add Tengyun S5000C cpu support - hw/virtio: Fix obtain the buffer id from the last descriptor - hw/core: ensure kernel_end never gets used undefined Signed-off-by: Jiabo Feng <fengjiabo1@huawei.com> (cherry picked from commit 1f9e476e96edb07e34e0133a312f478ddab4b6ff)
37 lines
1.4 KiB
Diff
37 lines
1.4 KiB
Diff
From 7696f21456a2a42279efd3f9fca6df839bdbe441 Mon Sep 17 00:00:00 2001
|
|
From: Nick Briggs <nicholas.h.briggs@gmail.com>
|
|
Date: Thu, 1 Feb 2024 10:11:17 -0800
|
|
Subject: [PATCH] Avoid unaligned fetch in ladr_match()
|
|
|
|
There is no guarantee that the PCNetState is allocated such that
|
|
csr[8] is allocated on an 8-byte boundary. Since not all hosts are
|
|
capable of unaligned fetches the 16-bit elements need to be fetched
|
|
individually to avoid a potential fault. Closes issue #2143
|
|
|
|
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2143
|
|
Signed-off-by: Nick Briggs <nicholas.h.briggs@gmail.com>
|
|
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
|
|
Signed-off-by: Jason Wang <jasowang@redhat.com>
|
|
(cherry picked from commit 6a5287ce80470bb8df95901d73ee779a64e70c3a)
|
|
Signed-off-by: zhujun2 <zhujun2_yewu@cmss.chinamobile.com>
|
|
---
|
|
hw/net/pcnet.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c
|
|
index da910a70bf..9c475d5721 100644
|
|
--- a/hw/net/pcnet.c
|
|
+++ b/hw/net/pcnet.c
|
|
@@ -632,7 +632,7 @@ static inline int ladr_match(PCNetState *s, const uint8_t *buf, int size)
|
|
{
|
|
struct qemu_ether_header *hdr = (void *)buf;
|
|
if ((*(hdr->ether_dhost)&0x01) &&
|
|
- ((uint64_t *)&s->csr[8])[0] != 0LL) {
|
|
+ (s->csr[8] | s->csr[9] | s->csr[10] | s->csr[11]) != 0) {
|
|
uint8_t ladr[8] = {
|
|
s->csr[8] & 0xff, s->csr[8] >> 8,
|
|
s->csr[9] & 0xff, s->csr[9] >> 8,
|
|
--
|
|
2.41.0.windows.1
|
|
|