diff options
author | ngie <ngie@FreeBSD.org> | 2016-06-08 18:27:44 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2016-06-08 18:27:44 +0000 |
commit | e55bbd66610a2b3e14882d62cf6a1f102aa8498e (patch) | |
tree | d33af57fd4873f96df59e9a13c3636fd6b716223 /lib/libc/rpc | |
parent | 493224304ce13d1cca267d1e7b62cd1cdef1ecb3 (diff) | |
download | FreeBSD-src-e55bbd66610a2b3e14882d62cf6a1f102aa8498e.zip FreeBSD-src-e55bbd66610a2b3e14882d62cf6a1f102aa8498e.tar.gz |
MFC r300386:
Don't leak `handle` if svc_tp_create(..) succeeds and allocating a new
struct xlist object fails
CID: 978277
Diffstat (limited to 'lib/libc/rpc')
-rw-r--r-- | lib/libc/rpc/svc_generic.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/libc/rpc/svc_generic.c b/lib/libc/rpc/svc_generic.c index 21569c0..dca79f5 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 |