Message ID | 20180907180151.178872-9-steved@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | libtirpc: Closed a number of memory leaks | expand |
diff --git a/src/rpc_soc.c b/src/rpc_soc.c index 5a6eeb7..59e0882 100644 --- a/src/rpc_soc.c +++ b/src/rpc_soc.c @@ -663,8 +663,10 @@ svcunix_create(sock, sendsize, recvsize, path) strcmp(nconf->nc_protofmly, NC_LOOPBACK) == 0) break; } - if (nconf == NULL) + if (nconf == NULL) { + endnetconfig(localhandle); return(xprt); + } if ((sock = __rpc_nconf2fd(nconf)) < 0) goto done; @@ -692,6 +694,8 @@ svcunix_create(sock, sendsize, recvsize, path) } xprt = (SVCXPRT *)svc_tli_create(sock, nconf, &taddr, sendsize, recvsize); + if (xprt == NULL) + close(sock); done: endnetconfig(localhandle);
Variable "localhandle" going out of scope leaks the storage it points to. Returning without closing handle "sock" leaks it. Signed-off-by: Steve Dickson <steved@redhat.com> --- src/rpc_soc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)