diff options
author | brueffer <brueffer@FreeBSD.org> | 2014-05-16 15:48:45 +0000 |
---|---|---|
committer | brueffer <brueffer@FreeBSD.org> | 2014-05-16 15:48:45 +0000 |
commit | 0e330f2d7031b7b7ac99866fff8db9856635226c (patch) | |
tree | 7bafe14e11de5ffbaeff68606ef94cff08ea499a | |
parent | 00cf31e9a02b02726b9b195c117c6df4287bd43d (diff) | |
download | FreeBSD-src-0e330f2d7031b7b7ac99866fff8db9856635226c.zip FreeBSD-src-0e330f2d7031b7b7ac99866fff8db9856635226c.tar.gz |
MFC: r265238, r265240
Properly free resources in case of error.
CID: 1007032
Found with: Coverity Prevent(tm)
-rw-r--r-- | lib/libc/rpc/clnt_vc.c | 14 | ||||
-rw-r--r-- | sys/rpc/clnt_vc.c | 12 |
2 files changed, 11 insertions, 15 deletions
diff --git a/lib/libc/rpc/clnt_vc.c b/lib/libc/rpc/clnt_vc.c index 7cd93b3..117cfba 100644 --- a/lib/libc/rpc/clnt_vc.c +++ b/lib/libc/rpc/clnt_vc.c @@ -301,15 +301,13 @@ clnt_vc_create(fd, raddr, prog, vers, sendsz, recvsz) return (cl); err: - if (cl) { - if (ct) { - if (ct->ct_addr.len) - mem_free(ct->ct_addr.buf, ct->ct_addr.len); - mem_free(ct, sizeof (struct ct_data)); - } - if (cl) - mem_free(cl, sizeof (CLIENT)); + if (ct) { + if (ct->ct_addr.len) + mem_free(ct->ct_addr.buf, ct->ct_addr.len); + mem_free(ct, sizeof (struct ct_data)); } + if (cl) + mem_free(cl, sizeof (CLIENT)); return ((CLIENT *)NULL); } diff --git a/sys/rpc/clnt_vc.c b/sys/rpc/clnt_vc.c index 44d1097..67ad58f 100644 --- a/sys/rpc/clnt_vc.c +++ b/sys/rpc/clnt_vc.c @@ -270,14 +270,12 @@ clnt_vc_create( return (cl); err: - if (cl) { - if (ct) { - mtx_destroy(&ct->ct_lock); - mem_free(ct, sizeof (struct ct_data)); - } - if (cl) - mem_free(cl, sizeof (CLIENT)); + if (ct) { + mtx_destroy(&ct->ct_lock); + mem_free(ct, sizeof (struct ct_data)); } + if (cl) + mem_free(cl, sizeof (CLIENT)); return ((CLIENT *)NULL); } |