summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ypserv
diff options
context:
space:
mode:
authoreadler <eadler@FreeBSD.org>2011-12-21 20:27:41 +0000
committereadler <eadler@FreeBSD.org>2011-12-21 20:27:41 +0000
commit3c01e31040c2984c114ac9977789b76185e726e6 (patch)
tree7c566920fb5ced92e004cf337adc73daa4f7fdb7 /usr.sbin/ypserv
parentd24fa001e9004ec4a6f53ac209eeb53f2b6cc1ab (diff)
downloadFreeBSD-src-3c01e31040c2984c114ac9977789b76185e726e6.zip
FreeBSD-src-3c01e31040c2984c114ac9977789b76185e726e6.tar.gz
- Remove extraneous null ptr deref checks
- Fix memory leak Submitted by: Slono Slono <slonoman2011@yandex.ru> Approved by: jhb MFC after: 1 week
Diffstat (limited to 'usr.sbin/ypserv')
-rw-r--r--usr.sbin/ypserv/yp_main.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/usr.sbin/ypserv/yp_main.c b/usr.sbin/ypserv/yp_main.c
index 7473e6f..6da1ea5 100644
--- a/usr.sbin/ypserv/yp_main.c
+++ b/usr.sbin/ypserv/yp_main.c
@@ -256,6 +256,7 @@ create_service(const int sock, const struct netconfig *nconf,
const struct __rpc_sockinfo *si)
{
int error;
+ char *sname;
SVCXPRT *transp;
struct addrinfo hints, *res, *res0;
@@ -263,6 +264,7 @@ create_service(const int sock, const struct netconfig *nconf,
struct bindaddrlistent *blep;
struct netbuf svcaddr;
+ sname = NULL;
SLIST_INIT(&sle_head);
memset(&hints, 0, sizeof(hints));
memset(&svcaddr, 0, sizeof(svcaddr));
@@ -342,7 +344,6 @@ create_service(const int sock, const struct netconfig *nconf,
if (strncmp("0", servname, 1) == 0) {
struct sockaddr *sap;
socklen_t slen;
- char *sname;
sname = malloc(NI_MAXSERV);
if (sname == NULL) {
@@ -362,6 +363,7 @@ create_service(const int sock, const struct netconfig *nconf,
strerror(errno));
freeaddrinfo(res0);
close(s);
+ free(sname);
return -1;
}
error = getnameinfo(sap, slen,
@@ -373,6 +375,7 @@ create_service(const int sock, const struct netconfig *nconf,
strerror(errno));
freeaddrinfo(res0);
close(s);
+ free(sname);
return -1;
}
servname = sname;
@@ -441,7 +444,7 @@ create_service(const int sock, const struct netconfig *nconf,
}
/* XXX: ignore error intentionally */
rpcb_set(YPPROG, YPVERS, nconf, &svcaddr);
-
+ free (sname);
freeaddrinfo(res0);
return 0;
}
OpenPOWER on IntegriCloud