From: Steffen Klassert Date: Wed, 6 Nov 2019 07:13:49 +0000 (+0100) Subject: xfrm: Fix memleak on xfrm state destroy X-Git-Tag: android-x86-9.0-r1~4^2~67^2~47 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=55b5cbaa468a778fac157141e443e90fe0d201cd;p=android-x86%2Fkernel.git xfrm: Fix memleak on xfrm state destroy commit 86c6739eda7d2a03f2db30cbee67a5fb81afa8ba upstream. We leak the page that we use to create skb page fragments when destroying the xfrm_state. Fix this by dropping a page reference if a page was assigned to the xfrm_state. Fixes: cac2661c53f3 ("esp4: Avoid skb_cow_data whenever possible") Reported-by: JD Reported-by: Paul Wouters Signed-off-by: Steffen Klassert Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c index 11e09eb138d6..47a8ff972a2b 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c @@ -456,6 +456,8 @@ static void ___xfrm_state_destroy(struct xfrm_state *x) x->type->destructor(x); xfrm_put_type(x->type); } + if (x->xfrag.page) + put_page(x->xfrag.page); xfrm_dev_state_free(x); security_xfrm_state_free(x); xfrm_state_free(x);