84 lines
2.3 KiB
Diff
84 lines
2.3 KiB
Diff
|
diff -up rpcbind-1.2.5/src/rpcbind.c.orig rpcbind-1.2.5/src/rpcbind.c
|
||
|
--- rpcbind-1.2.5/src/rpcbind.c.orig 2018-08-15 10:51:19.000000000 -0400
|
||
|
+++ rpcbind-1.2.5/src/rpcbind.c 2019-11-11 10:53:56.753677937 -0500
|
||
|
@@ -340,7 +340,7 @@ init_transport(struct netconfig *nconf)
|
||
|
{
|
||
|
int fd = -1;
|
||
|
struct t_bind taddr;
|
||
|
- struct addrinfo hints, *res;
|
||
|
+ struct addrinfo hints, *res = NULL;
|
||
|
struct __rpc_sockinfo si;
|
||
|
SVCXPRT *my_xprt = NULL;
|
||
|
int status; /* bound checking ? */
|
||
|
@@ -817,8 +817,12 @@ got_socket:
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
+ if (res != NULL)
|
||
|
+ freeaddrinfo(res);
|
||
|
return (0);
|
||
|
error:
|
||
|
+ if (res != NULL)
|
||
|
+ freeaddrinfo(res);
|
||
|
close(fd);
|
||
|
return (1);
|
||
|
}
|
||
|
diff -up rpcbind-1.2.5/src/rpcb_stat.c.orig rpcbind-1.2.5/src/rpcb_stat.c
|
||
|
--- rpcbind-1.2.5/src/rpcb_stat.c.orig 2018-08-15 10:51:19.000000000 -0400
|
||
|
+++ rpcbind-1.2.5/src/rpcb_stat.c 2019-11-11 10:53:56.754677944 -0500
|
||
|
@@ -151,7 +151,7 @@ rpcbs_rmtcall(rpcvers_t rtype, rpcproc_t
|
||
|
rpcbs_rmtcalllist *rl;
|
||
|
struct netconfig *nconf;
|
||
|
|
||
|
- if (rtype > RPCBVERS_STAT)
|
||
|
+ if (rtype >= RPCBVERS_STAT)
|
||
|
return;
|
||
|
for (rl = inf[rtype].rmtinfo; rl; rl = rl->next) {
|
||
|
|
||
|
diff -up rpcbind-1.2.5/src/rpcinfo.c.orig rpcbind-1.2.5/src/rpcinfo.c
|
||
|
--- rpcbind-1.2.5/src/rpcinfo.c.orig 2019-11-11 10:52:54.212281436 -0500
|
||
|
+++ rpcbind-1.2.5/src/rpcinfo.c 2019-11-11 10:53:56.755677950 -0500
|
||
|
@@ -693,11 +693,11 @@ reply_proc (res, who, nconf)
|
||
|
}
|
||
|
if (!(uaddr = taddr2uaddr (nconf, who)))
|
||
|
{
|
||
|
- uaddr = UNKNOWN;
|
||
|
+ printf ("%s\t%s\n", UNKNOWN, hostname);
|
||
|
+ } else {
|
||
|
+ printf ("%s\t%s\n", uaddr, hostname);
|
||
|
+ free ((char *) uaddr);
|
||
|
}
|
||
|
- printf ("%s\t%s\n", uaddr, hostname);
|
||
|
- if (strcmp (uaddr, UNKNOWN))
|
||
|
- free ((char *) uaddr);
|
||
|
return (FALSE);
|
||
|
}
|
||
|
|
||
|
diff -up rpcbind-1.2.5/src/util.c.orig rpcbind-1.2.5/src/util.c
|
||
|
--- rpcbind-1.2.5/src/util.c.orig 2018-08-15 10:51:19.000000000 -0400
|
||
|
+++ rpcbind-1.2.5/src/util.c 2019-11-11 10:53:56.756677956 -0500
|
||
|
@@ -322,9 +322,10 @@ network_init()
|
||
|
/*
|
||
|
* Now join the RPC ipv6 multicast group on all interfaces.
|
||
|
*/
|
||
|
- if (getifaddrs(&ifp) < 0)
|
||
|
+ if (getifaddrs(&ifp) < 0) {
|
||
|
+ freeaddrinfo (res);
|
||
|
return;
|
||
|
-
|
||
|
+ }
|
||
|
mreq6.ipv6mr_interface = 0;
|
||
|
inet_pton(AF_INET6, RPCB_MULTICAST_ADDR, &mreq6.ipv6mr_multiaddr);
|
||
|
|
||
|
@@ -352,8 +353,8 @@ network_init()
|
||
|
perror("setsockopt v6 multicast");
|
||
|
}
|
||
|
#endif
|
||
|
-
|
||
|
- /* close(s); */
|
||
|
+ freeaddrinfo (res);
|
||
|
+ close(s);
|
||
|
}
|
||
|
|
||
|
struct sockaddr *
|