mirror of
https://github.com/openvswitch/ovs
synced 2025-08-30 05:47:55 +00:00
packets: Fix misaligned access to ip6_hdr.
The ip6_hdr is aligned to 4 bytes, but the pointer from dp_packet_l3 is aligned to 2 bytes. Use ovs_16aligned_ip6_hdr instead to get 2 bytes alignment. Signed-off-by: Ales Musil <amusil@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
parent
16193fe730
commit
39364e11dd
@ -1709,7 +1709,7 @@ compose_ipv6(struct dp_packet *packet, uint8_t proto,
|
||||
const struct in6_addr *src, const struct in6_addr *dst,
|
||||
uint8_t key_tc, ovs_be32 key_fl, uint8_t key_hl, int size)
|
||||
{
|
||||
struct ip6_hdr *nh;
|
||||
struct ovs_16aligned_ip6_hdr *nh;
|
||||
void *data;
|
||||
|
||||
nh = dp_packet_l3(packet);
|
||||
@ -1847,7 +1847,7 @@ packet_put_ra_prefix_opt(struct dp_packet *b,
|
||||
const ovs_be128 prefix)
|
||||
{
|
||||
size_t prev_l4_size = dp_packet_l4_size(b);
|
||||
struct ip6_hdr *nh = dp_packet_l3(b);
|
||||
struct ovs_16aligned_ip6_hdr *nh = dp_packet_l3(b);
|
||||
nh->ip6_plen = htons(prev_l4_size + ND_PREFIX_OPT_LEN);
|
||||
|
||||
struct ovs_nd_prefix_opt *prefix_opt =
|
||||
|
Loading…
x
Reference in New Issue
Block a user