]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - net/ipv6/af_inet6.c
netfilter: x_tables: pass xt_counters struct instead of packet counter
[mirror_ubuntu-bionic-kernel.git] / net / ipv6 / af_inet6.c
index 46ad699937fdcc6eaaf4b6490e6f3822ad444df8..237e654ba717ea642ef14dc7502834ada55a1854 100644 (file)
@@ -61,6 +61,7 @@
 #include <net/ip6_tunnel.h>
 #endif
 #include <net/calipso.h>
+#include <net/seg6.h>
 
 #include <asm/uaccess.h>
 #include <linux/mroute6.h>
@@ -257,6 +258,14 @@ lookup_protocol:
                        goto out;
                }
        }
+
+       if (!kern) {
+               err = BPF_CGROUP_RUN_PROG_INET_SOCK(sk);
+               if (err) {
+                       sk_common_release(sk);
+                       goto out;
+               }
+       }
 out:
        return err;
 out_rcu_unlock:
@@ -678,6 +687,7 @@ int inet6_sk_rebuild_header(struct sock *sk)
                fl6.flowi6_mark = sk->sk_mark;
                fl6.fl6_dport = inet->inet_dport;
                fl6.fl6_sport = inet->inet_sport;
+               fl6.flowi6_uid = sk->sk_uid;
                security_sk_classify_flow(sk, flowi6_to_flowi(&fl6));
 
                rcu_read_lock();
@@ -990,6 +1000,10 @@ static int __init inet6_init(void)
        if (err)
                goto calipso_fail;
 
+       err = seg6_init();
+       if (err)
+               goto seg6_fail;
+
 #ifdef CONFIG_SYSCTL
        err = ipv6_sysctl_register();
        if (err)
@@ -1000,8 +1014,10 @@ out:
 
 #ifdef CONFIG_SYSCTL
 sysctl_fail:
-       calipso_exit();
+       seg6_exit();
 #endif
+seg6_fail:
+       calipso_exit();
 calipso_fail:
        pingv6_exit();
 pingv6_fail: