summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pattrick <mkp@redhat.com>2023-03-28 11:21:53 -0400
committerIlya Maximets <i.maximets@ovn.org>2023-03-29 23:20:39 +0200
commitfee5ea7204625d554e923cfb56745d92b587a9a2 (patch)
tree4cc41248f5fefb1bb2a739b84feae6350d057ab8
parentfff04b838a4036636cd79473a34a13d00b32e548 (diff)
downloadopenvswitch-fee5ea7204625d554e923cfb56745d92b587a9a2.tar.gz
netdev-tc-offloads: Fix misaligned 8 byte read.
UB Sanitizer report: lib/netdev-offload-tc.c:1276:19: runtime error: load of misaligned address 0x7f74e801976c for type 'union ovs_u128', which requires 8 byte alignment 0 in netdev_tc_flow_dump_next lib/netdev-offload-tc.c:1276 1 in netdev_flow_dump_next lib/netdev-offload.c:303 2 in dpif_netlink_flow_dump_next lib/dpif-netlink.c:1921 [...] Fixes: 8f7620e6a406 ("netdev-tc-offloads: Implement netdev flow dump api using tc interface") Acked-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Mike Pattrick <mkp@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
-rw-r--r--lib/netdev-offload-tc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/netdev-offload-tc.c b/lib/netdev-offload-tc.c
index 2eef85fec..e1eddfd57 100644
--- a/lib/netdev-offload-tc.c
+++ b/lib/netdev-offload-tc.c
@@ -1282,8 +1282,8 @@ netdev_tc_flow_dump_next(struct netdev_flow_dump *dump,
continue;
}
- if (flower.act_cookie.len) {
- *ufid = *((ovs_u128 *) flower.act_cookie.data);
+ if (flower.act_cookie.len >= sizeof *ufid) {
+ *ufid = get_32aligned_u128(flower.act_cookie.data);
} else if (!find_ufid(netdev, &id, ufid)) {
continue;
}