You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.2 KiB
38 lines
1.2 KiB
7 years ago
|
diff -up libtirpc-0.2.4/src/svc_generic.c.orig libtirpc-0.2.4/src/svc_generic.c
|
||
|
--- libtirpc-0.2.4/src/svc_generic.c.orig 2013-12-09 15:59:51.000000000 -0500
|
||
|
+++ libtirpc-0.2.4/src/svc_generic.c 2015-06-29 10:20:27.239019533 -0400
|
||
|
@@ -283,6 +283,8 @@ svc_tli_create(fd, nconf, bindaddr, send
|
||
|
xprt->xp_type = __rpc_socktype2seman(si.si_socktype);
|
||
|
|
||
|
if (nconf) {
|
||
|
+ if (xprt->xp_netid != NULL)
|
||
|
+ free(xprt->xp_netid);
|
||
|
xprt->xp_netid = strdup(nconf->nc_netid);
|
||
|
xprt->xp_tp = strdup(nconf->nc_device);
|
||
|
}
|
||
|
diff -up libtirpc-0.2.4/src/svc_vc.c.orig libtirpc-0.2.4/src/svc_vc.c
|
||
|
--- libtirpc-0.2.4/src/svc_vc.c.orig 2015-06-29 10:19:21.205835483 -0400
|
||
|
+++ libtirpc-0.2.4/src/svc_vc.c 2015-06-29 10:20:34.616151809 -0400
|
||
|
@@ -393,6 +393,12 @@ svc_vc_destroy(xprt)
|
||
|
__svc_vc_dodestroy(xprt);
|
||
|
}
|
||
|
|
||
|
+static bool_t
|
||
|
+__svc_rendezvous_socket(xprt)
|
||
|
+ SVCXPRT *xprt;
|
||
|
+{
|
||
|
+ return (xprt->xp_ops->xp_recv == rendezvous_request);
|
||
|
+}
|
||
|
static void
|
||
|
__svc_vc_dodestroy(xprt)
|
||
|
SVCXPRT *xprt;
|
||
|
@@ -404,7 +410,7 @@ __svc_vc_dodestroy(xprt)
|
||
|
|
||
|
if (xprt->xp_fd != RPC_ANYFD)
|
||
|
(void)close(xprt->xp_fd);
|
||
|
- if (xprt->xp_port != 0) {
|
||
|
+ if (__svc_rendezvous_socket(xprt)) {
|
||
|
/* a rendezvouser socket */
|
||
|
r = (struct cf_rendezvous *)xprt->xp_p1;
|
||
|
mem_free(r, sizeof (struct cf_rendezvous));
|