From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:42139) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gr5Sw-0004pu-7p for qemu-devel@nongnu.org; Tue, 05 Feb 2019 13:29:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gr5Sv-0005L1-9n for qemu-devel@nongnu.org; Tue, 05 Feb 2019 13:29:02 -0500 Received: from hera.aquilenet.fr ([2a0c:e300::1]:42618) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gr5Su-0005HJ-VA for qemu-devel@nongnu.org; Tue, 05 Feb 2019 13:29:01 -0500 From: Samuel Thibault Date: Tue, 5 Feb 2019 20:28:17 +0200 Message-Id: <20190205182848.29887-2-samuel.thibault@ens-lyon.org> In-Reply-To: <20190205182848.29887-1-samuel.thibault@ens-lyon.org> References: <20190205182848.29887-1-samuel.thibault@ens-lyon.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PULLv3 01/32] slirp: Avoid unaligned 16bit memory access List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: Samuel Thibault , stefanha@redhat.com, jan.kiszka@siemens.com, Richard Henderson pkt parameter may be unaligned, so we must access it byte-wise. This fixes sparc64 host SIGBUS during pxe boot. Signed-off-by: Samuel Thibault Reviewed-by: Richard Henderson --- slirp/slirp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slirp/slirp.c b/slirp/slirp.c index a9674ab090..739f364770 100644 --- a/slirp/slirp.c +++ b/slirp/slirp.c @@ -829,7 +829,7 @@ void slirp_input(Slirp *slirp, const uint8_t *pkt, in= t pkt_len) if (pkt_len < ETH_HLEN) return; =20 - proto =3D ntohs(*(uint16_t *)(pkt + 12)); + proto =3D (((uint16_t) pkt[12]) << 8) + pkt[13]; switch(proto) { case ETH_P_ARP: arp_input(slirp, pkt, pkt_len); --=20 2.20.1