--- zzzz-none-000/linux-4.4.271/net/ipv6/datagram.c 2021-06-03 06:22:09.000000000 +0000 +++ hawkeye-5590-750/linux-4.4.271/net/ipv6/datagram.c 2023-04-19 10:22:30.000000000 +0000 @@ -166,6 +166,7 @@ fl6.flowi6_mark = sk->sk_mark; fl6.fl6_dport = inet->inet_dport; fl6.fl6_sport = inet->inet_sport; + fl6.flowi6_uid = sk->sk_uid; if (!fl6.flowi6_oif) fl6.flowi6_oif = np->sticky_pktinfo.ipi6_ifindex; @@ -436,7 +437,7 @@ ipv6_iface_scope_id(&sin->sin6_addr, IP6CB(skb)->iif); } else { - ipv6_addr_set_v4mapped(*(__be32 *)(nh + serr->addr_offset), + ipv6_addr_set_v4mapped(net_hdr_word(nh + serr->addr_offset), &sin->sin6_addr); sin->sin6_scope_id = 0; } @@ -774,12 +775,12 @@ } if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { - if ((fl6->flowlabel^*(__be32 *)CMSG_DATA(cmsg))&~IPV6_FLOWINFO_MASK) { + if ((fl6->flowlabel^net_hdr_word(CMSG_DATA(cmsg)))&~IPV6_FLOWINFO_MASK) { err = -EINVAL; goto exit_f; } } - fl6->flowlabel = IPV6_FLOWINFO_MASK & *(__be32 *)CMSG_DATA(cmsg); + fl6->flowlabel = IPV6_FLOWINFO_MASK & net_hdr_word(CMSG_DATA(cmsg)); break; case IPV6_2292HOPOPTS: