[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] slirp: Use lduw_be_p in slirp_input
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH] slirp: Use lduw_be_p in slirp_input |
Date: |
Wed, 26 Dec 2018 14:42:54 +1100 |
The pointer may be unaligned, so we must use our routines for that.
At the same time, we might as well use the big-endian version
instead of ntohs.
This fixes sparc64 host SIGBUS during pxe boot.
Signed-off-by: Richard Henderson <address@hidden>
---
slirp/slirp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/slirp/slirp.c b/slirp/slirp.c
index 322edf51eb..a116f43878 100644
--- a/slirp/slirp.c
+++ b/slirp/slirp.c
@@ -851,7 +851,7 @@ void slirp_input(Slirp *slirp, const uint8_t *pkt, int
pkt_len)
if (pkt_len < ETH_HLEN)
return;
- proto = ntohs(*(uint16_t *)(pkt + 12));
+ proto = lduw_be_p(pkt + 12);
switch(proto) {
case ETH_P_ARP:
arp_input(slirp, pkt, pkt_len);
--
2.17.2
- [Qemu-devel] [PATCH] slirp: Use lduw_be_p in slirp_input,
Richard Henderson <=