Le mer. 26 déc. 2018 04:43, Richard Henderson <[email protected]> a écrit :
> 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 <[email protected]> > Reviewed-by: Philippe Mathieu-Daudé <[email protected]> --- > 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 > > >
