diff options
author | Mike Pattrick <mkp@redhat.com> | 2023-03-28 11:21:53 -0400 |
---|---|---|
committer | Ilya Maximets <i.maximets@ovn.org> | 2023-03-29 23:20:06 +0200 |
commit | 306583b56868edc5f9bcc2a21ac07e334891a6c7 (patch) | |
tree | 16fe9bd2ce082a6dfc97787b5d02acf8024db093 | |
parent | 7381fd440a88ae92ca3bbc6b2ee34c5d5861a061 (diff) | |
download | openvswitch-306583b56868edc5f9bcc2a21ac07e334891a6c7.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.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/netdev-offload-tc.c b/lib/netdev-offload-tc.c index 247c1ff8b..4721f0160 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; } |