Commit c3afb7ea authored by David S. Miller's avatar David S. Miller

Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec

Steffen Klassert says:

====================
pull request (net): ipsec 2019-11-13

1) Fix a page memleak on xfrm state destroy.

2) Fix a refcount imbalance if a xfrm_state
   gets invaild during async resumption.
   From Xiaodong Xu.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 5aa4277d 4944a4b1
...@@ -480,6 +480,9 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type) ...@@ -480,6 +480,9 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)
else else
XFRM_INC_STATS(net, XFRM_INC_STATS(net,
LINUX_MIB_XFRMINSTATEINVALID); LINUX_MIB_XFRMINSTATEINVALID);
if (encap_type == -1)
dev_put(skb->dev);
goto drop; goto drop;
} }
......
...@@ -495,6 +495,8 @@ static void ___xfrm_state_destroy(struct xfrm_state *x) ...@@ -495,6 +495,8 @@ static void ___xfrm_state_destroy(struct xfrm_state *x)
x->type->destructor(x); x->type->destructor(x);
xfrm_put_type(x->type); xfrm_put_type(x->type);
} }
if (x->xfrag.page)
put_page(x->xfrag.page);
xfrm_dev_state_free(x); xfrm_dev_state_free(x);
security_xfrm_state_free(x); security_xfrm_state_free(x);
xfrm_state_free(x); xfrm_state_free(x);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment