aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Blapp <mbr@FreeBSD.org>2003-01-16 16:56:22 +0000
committerMartin Blapp <mbr@FreeBSD.org>2003-01-16 16:56:22 +0000
commit47227ef0ef663b7abb81ab5a60a450da9a93d24b (patch)
tree4a4112b2b683550fef9ba580f433d12767fe80ee
parentaed3a608332e119c40260aa89ed02fb35a632cbe (diff)
downloadsrc-release/5.0.0.tar.gz
src-release/5.0.0.zip
MFC: Fix memleak.release/5.0.0
Reviewed by: rwatson Approved by: re (scottl)
-rw-r--r--lib/libc/rpc/rpc_generic.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/libc/rpc/rpc_generic.c b/lib/libc/rpc/rpc_generic.c
index 181392035672..180b5ee7eeb4 100644
--- a/lib/libc/rpc/rpc_generic.c
+++ b/lib/libc/rpc/rpc_generic.c
@@ -555,21 +555,27 @@ int
__rpc_sockinfo2netid(struct __rpc_sockinfo *sip, const char **netid)
{
int i;
+ struct netconfig *nconf;
+
+ nconf = getnetconfigent("local");
for (i = 0; i < (sizeof na_cvt) / (sizeof (struct netid_af)); i++) {
if (na_cvt[i].af == sip->si_af &&
na_cvt[i].protocol == sip->si_proto) {
- if (strcmp(na_cvt[i].netid, "local") == 0 &&
- getnetconfigent("local") == NULL) {
+ if (strcmp(na_cvt[i].netid, "local") == 0 && nconf == NULL) {
if (netid)
*netid = "unix";
} else {
if (netid)
*netid = na_cvt[i].netid;
}
+ if (nconf != NULL)
+ freenetconfigent(nconf);
return 1;
}
}
+ if (nconf != NULL)
+ freenetconfigent(nconf);
return 0;
}