Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Minor conflict in net/core/rtnetlink.c, David Ahern's bug fix in 'net' overlapped the renaming of a netlink attribute in net-next. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -458,6 +458,7 @@ resume:
|
||||
XFRM_INC_STATS(net, LINUX_MIB_XFRMINHDRERROR);
|
||||
goto drop;
|
||||
}
|
||||
crypto_done = false;
|
||||
} while (!err);
|
||||
|
||||
err = xfrm_rcv_cb(skb, family, x->type->proto, 0);
|
||||
|
@@ -100,6 +100,10 @@ static int xfrm_output_one(struct sk_buff *skb, int err)
|
||||
spin_unlock_bh(&x->lock);
|
||||
|
||||
skb_dst_force(skb);
|
||||
if (!skb_dst(skb)) {
|
||||
XFRM_INC_STATS(net, LINUX_MIB_XFRMOUTERROR);
|
||||
goto error_nolock;
|
||||
}
|
||||
|
||||
if (xfrm_offload(skb)) {
|
||||
x->type_offload->encap(x, skb);
|
||||
|
@@ -2491,6 +2491,10 @@ int __xfrm_route_forward(struct sk_buff *skb, unsigned short family)
|
||||
}
|
||||
|
||||
skb_dst_force(skb);
|
||||
if (!skb_dst(skb)) {
|
||||
XFRM_INC_STATS(net, LINUX_MIB_XFRMFWDHDRERROR);
|
||||
return 0;
|
||||
}
|
||||
|
||||
dst = xfrm_lookup(net, skb_dst(skb), &fl, NULL, XFRM_LOOKUP_QUEUE);
|
||||
if (IS_ERR(dst)) {
|
||||
|
@@ -151,10 +151,16 @@ static int verify_newsa_info(struct xfrm_usersa_info *p,
|
||||
err = -EINVAL;
|
||||
switch (p->family) {
|
||||
case AF_INET:
|
||||
if (p->sel.prefixlen_d > 32 || p->sel.prefixlen_s > 32)
|
||||
goto out;
|
||||
|
||||
break;
|
||||
|
||||
case AF_INET6:
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
if (p->sel.prefixlen_d > 128 || p->sel.prefixlen_s > 128)
|
||||
goto out;
|
||||
|
||||
break;
|
||||
#else
|
||||
err = -EAFNOSUPPORT;
|
||||
@@ -1396,10 +1402,16 @@ static int verify_newpolicy_info(struct xfrm_userpolicy_info *p)
|
||||
|
||||
switch (p->sel.family) {
|
||||
case AF_INET:
|
||||
if (p->sel.prefixlen_d > 32 || p->sel.prefixlen_s > 32)
|
||||
return -EINVAL;
|
||||
|
||||
break;
|
||||
|
||||
case AF_INET6:
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
if (p->sel.prefixlen_d > 128 || p->sel.prefixlen_s > 128)
|
||||
return -EINVAL;
|
||||
|
||||
break;
|
||||
#else
|
||||
return -EAFNOSUPPORT;
|
||||
@@ -1480,6 +1492,9 @@ static int validate_tmpl(int nr, struct xfrm_user_tmpl *ut, u16 family)
|
||||
(ut[i].family != prev_family))
|
||||
return -EINVAL;
|
||||
|
||||
if (ut[i].mode >= XFRM_MODE_MAX)
|
||||
return -EINVAL;
|
||||
|
||||
prev_family = ut[i].family;
|
||||
|
||||
switch (ut[i].family) {
|
||||
|
Reference in New Issue
Block a user