From: J. Bruce Fields Date: Fri, 20 May 2016 21:07:17 +0000 (-0400) Subject: SUNRPC: fix xprt leak on xps allocation failure X-Git-Tag: v4.6.5~148 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=863af7a779f0f0b6f2d49d32c8c23f4dd68507e5;p=thirdparty%2Fkernel%2Fstable.git SUNRPC: fix xprt leak on xps allocation failure commit 1208fd569c07ab84aa5d024abd863267c2953b4a upstream. Callers of rpc_create_xprt expect it to put the xprt on success and failure. Signed-off-by: J. Bruce Fields Acked-by: Trond Myklebust Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 3d7eebd3b713e..ad3f5ebec2d12 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -453,9 +453,10 @@ static struct rpc_clnt *rpc_create_xprt(struct rpc_create_args *args, struct rpc_xprt_switch *xps; xps = xprt_switch_alloc(xprt, GFP_KERNEL); - if (xps == NULL) + if (xps == NULL) { + xprt_put(xprt); return ERR_PTR(-ENOMEM); - + } clnt = rpc_new_client(args, xps, xprt, NULL); if (IS_ERR(clnt)) return clnt;