From dff8cdb7c81be0916631bfe5b4384516b430227f Mon Sep 17 00:00:00 2001 From: Marcel Telka Date: Thu, 3 Apr 2014 21:32:25 +0200 Subject: 4724 Possible memory leak in _clnt_vc_create_timed() Reviewed by: Andy Stormont Reviewed by: Dan McDonald Approved by: Gordon Ross --- usr/src/lib/libnsl/rpc/clnt_vc.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'usr/src/lib/libnsl') diff --git a/usr/src/lib/libnsl/rpc/clnt_vc.c b/usr/src/lib/libnsl/rpc/clnt_vc.c index 671adaada6..0c0fb01037 100644 --- a/usr/src/lib/libnsl/rpc/clnt_vc.c +++ b/usr/src/lib/libnsl/rpc/clnt_vc.c @@ -240,7 +240,9 @@ _clnt_vc_create_timed(int fd, struct netbuf *svcaddr, rpcprog_t prog, int flag; cl = malloc(sizeof (*cl)); - ct = malloc(sizeof (*ct)); + if ((ct = malloc(sizeof (*ct))) != NULL) + ct->ct_addr.buf = NULL; + if ((cl == NULL) || (ct == NULL)) { (void) syslog(LOG_ERR, clnt_vc_errstr, clnt_vc_str, __no_mem_str); @@ -249,7 +251,6 @@ _clnt_vc_create_timed(int fd, struct netbuf *svcaddr, rpcprog_t prog, rpc_createerr.cf_error.re_terrno = 0; goto err; } - ct->ct_addr.buf = NULL; /* * The only use of vctbl_lock is for serializing the creation of @@ -366,14 +367,12 @@ _clnt_vc_create_timed(int fd, struct netbuf *svcaddr, rpcprog_t prog, return (cl); err: - if (cl) { - if (ct) { - if (ct->ct_addr.len) - free(ct->ct_addr.buf); - free(ct); - } - free(cl); + if (ct) { + free(ct->ct_addr.buf); + free(ct); } + free(cl); + return (NULL); } -- cgit v1.2.3