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
>
>
>

Reply via email to