diff options
author | mbr <mbr@FreeBSD.org> | 2003-01-16 16:43:58 +0000 |
---|---|---|
committer | mbr <mbr@FreeBSD.org> | 2003-01-16 16:43:58 +0000 |
commit | 3262ba2f01ee903f457bb668899d079dc79fa668 (patch) | |
tree | f2837b424a866c8ee4dbc1e210f51080bae6b7fb /lib | |
parent | 04819fe8194edb61f144b656f41b5893c80c105d (diff) | |
download | FreeBSD-src-3262ba2f01ee903f457bb668899d079dc79fa668.zip FreeBSD-src-3262ba2f01ee903f457bb668899d079dc79fa668.tar.gz |
Fix memleak.
Reviewed by: rwatson
MFC after: 2 weeks
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/rpc/rpc_generic.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/libc/rpc/rpc_generic.c b/lib/libc/rpc/rpc_generic.c index 1813920..180b5ee 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; } |