From 4aa476f70c932dc7a160a37610701e2609e6b41a Mon Sep 17 00:00:00 2001 From: ngie Date: Wed, 8 Jun 2016 18:43:11 +0000 Subject: [PATCH] MFstable/10 r301682: MFC r300386: Don't leak `handle` if svc_tp_create(..) succeeds and allocating a new struct xlist object fails CID: 978277 git-svn-id: svn://svn.freebsd.org/base/stable/9@301685 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- lib/libc/rpc/svc_generic.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/libc/rpc/svc_generic.c b/lib/libc/rpc/svc_generic.c index 21569c042..dca79f5bf 100644 --- a/lib/libc/rpc/svc_generic.c +++ b/lib/libc/rpc/svc_generic.c @@ -121,7 +121,8 @@ svc_create(dispatch, prognum, versnum, nettype) if (l == NULL) { warnx("svc_create: no memory"); mutex_unlock(&xprtlist_lock); - return (0); + num = 0; + goto done; } l->xprt = xprt; l->next = xprtlist; @@ -131,6 +132,7 @@ svc_create(dispatch, prognum, versnum, nettype) } mutex_unlock(&xprtlist_lock); } +done: __rpc_endconf(handle); /* * In case of num == 0; the error messages are generated by the -- 2.45.0