From 176aaa65aac64b929fac8158fc1d2f577347effe Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 7 May 2010 11:43:18 -0700 Subject: [PATCH] flow: Fix misaligned access. The testsuite for the flow extractor triggered this. With this commit, "make check" passes on SPARC. --- lib/flow.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/flow.c b/lib/flow.c index fb7cf32a..38ad72ab 100644 --- a/lib/flow.c +++ b/lib/flow.c @@ -27,6 +27,7 @@ #include "openflow/openflow.h" #include "openvswitch/datapath-protocol.h" #include "packets.h" +#include "unaligned.h" #include "xtoxll.h" #include "vlog.h" @@ -154,8 +155,8 @@ flow_extract(struct ofpbuf *packet, uint32_t tun_id, uint16_t in_port, if (flow->dl_type == htons(ETH_TYPE_IP)) { const struct ip_header *nh = pull_ip(&b); if (nh) { - flow->nw_src = nh->ip_src; - flow->nw_dst = nh->ip_dst; + flow->nw_src = get_unaligned_u32(&nh->ip_src); + flow->nw_dst = get_unaligned_u32(&nh->ip_dst); flow->nw_tos = nh->ip_tos & IP_DSCP_MASK; flow->nw_proto = nh->ip_proto; packet->l4 = b.data; -- 2.30.2