Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/
ipsec-next Steffen Klassert says: ==================== pull request (net-next): ipsec-next 2021-08-27 1) Remove an unneeded extra variable in esp4 esp_ssg_unref. From Corey Minyard. 2) Add a configuration option to change the default behaviour to block traffic if there is no matching policy. Joint work with Christian Langrock and Antony Antony. 3) Fix a shift-out-of-bounce bug reported from syzbot. From Pavel Skripkin. Please pull or let me know if there are problems. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -3157,6 +3157,11 @@ ok:
|
||||
return dst;
|
||||
|
||||
nopol:
|
||||
if (!(dst_orig->dev->flags & IFF_LOOPBACK) &&
|
||||
!xfrm_default_allow(net, dir)) {
|
||||
err = -EPERM;
|
||||
goto error;
|
||||
}
|
||||
if (!(flags & XFRM_LOOKUP_ICMP)) {
|
||||
dst = dst_orig;
|
||||
goto ok;
|
||||
@@ -3545,6 +3550,11 @@ int __xfrm_policy_check(struct sock *sk, int dir, struct sk_buff *skb,
|
||||
}
|
||||
|
||||
if (!pol) {
|
||||
if (!xfrm_default_allow(net, dir)) {
|
||||
XFRM_INC_STATS(net, LINUX_MIB_XFRMINNOPOLS);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (sp && secpath_has_nontransport(sp, 0, &xerr_idx)) {
|
||||
xfrm_secpath_reject(xerr_idx, skb, &fl);
|
||||
XFRM_INC_STATS(net, LINUX_MIB_XFRMINNOPOLS);
|
||||
@@ -3599,6 +3609,12 @@ int __xfrm_policy_check(struct sock *sk, int dir, struct sk_buff *skb,
|
||||
tpp[ti++] = &pols[pi]->xfrm_vec[i];
|
||||
}
|
||||
xfrm_nr = ti;
|
||||
|
||||
if (!xfrm_default_allow(net, dir) && !xfrm_nr) {
|
||||
XFRM_INC_STATS(net, LINUX_MIB_XFRMINNOSTATES);
|
||||
goto reject;
|
||||
}
|
||||
|
||||
if (npols > 1) {
|
||||
xfrm_tmpl_sort(stp, tpp, xfrm_nr, family);
|
||||
tpp = stp;
|
||||
|
||||
Reference in New Issue
Block a user