rpms/libtirpc/F-7 libtirpc-0.1.7-svc-rtaddr.patch, NONE, 1.1 libtirpc.spec, 1.13, 1.14

Steve Dickson (steved) fedora-extras-commits at redhat.com
Thu Jul 26 21:07:38 UTC 2007


Author: steved

Update of /cvs/pkgs/rpms/libtirpc/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv31736

Modified Files:
	libtirpc.spec 
Added Files:
	libtirpc-0.1.7-svc-rtaddr.patch 
Log Message:
- Make sure remote address (xp_rtaddr) is populated
  with the correct type of address.


libtirpc-0.1.7-svc-rtaddr.patch:

--- NEW FILE libtirpc-0.1.7-svc-rtaddr.patch ---
--- libtirpc-0.1.7/src/svc_vc.c.orig	2005-05-18 01:10:50.000000000 -0400
+++ libtirpc-0.1.7/src/svc_vc.c	2007-07-26 16:56:01.000000000 -0400
@@ -239,7 +239,10 @@ svc_fd_create(fd, sendsize, recvsize)
 		warnx("svc_fd_create: no mem for local addr");
 		goto freedata;
 	}
-	memcpy(ret->xp_rtaddr.buf, &sin6, (size_t)sizeof(ss));
+	if (ss.ss_family == AF_INET)
+		memcpy(ret->xp_rtaddr.buf, &ss, (size_t)sizeof(ss));
+	else
+		memcpy(ret->xp_rtaddr.buf, &sin6, (size_t)sizeof(ss));
 #ifdef PORTMAP
 	if (sin6.sin6_family == AF_INET6 || sin6.sin6_family == AF_LOCAL) {
 		memcpy(&ret->xp_raddr, ret->xp_rtaddr.buf,
@@ -343,20 +346,23 @@ again:
 	newxprt = makefd_xprt(sock, r->sendsize, r->recvsize);
 	if (addr.ss_family == AF_INET) {
 		map_ipv4_to_ipv6((struct sockaddr_in *)&addr, &sin6);
-		len = sizeof(struct sockaddr_in6);
 	} else {
 		memcpy(&sin6, &addr, len);
 	}
 	newxprt->xp_rtaddr.buf = mem_alloc(len);
 	if (newxprt->xp_rtaddr.buf == NULL)
 		return (FALSE);
-	memcpy(newxprt->xp_rtaddr.buf, &sin6, len);
+
+	if (addr.ss_family == AF_INET)
+		memcpy(newxprt->xp_rtaddr.buf, &addr, len);
+	else
+		memcpy(newxprt->xp_rtaddr.buf, &sin6, len);
 	newxprt->xp_rtaddr.maxlen = newxprt->xp_rtaddr.len = len;
 #ifdef PORTMAP
 	if (sin6.sin6_family == AF_INET6 || sin6.sin6_family == AF_LOCAL) {
 		memcpy(&newxprt->xp_raddr, newxprt->xp_rtaddr.buf,
 			sizeof(struct sockaddr_in6));
-		newxprt->xp_addrlen = len;
+		newxprt->xp_addrlen = sizeof(struct sockaddr_in6);
 	}
 #endif				/* PORTMAP */
 	if (__rpc_fd2sockinfo(sock, &si) && si.si_proto == IPPROTO_TCP) {


Index: libtirpc.spec
===================================================================
RCS file: /cvs/pkgs/rpms/libtirpc/F-7/libtirpc.spec,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- libtirpc.spec	24 Jul 2007 14:17:50 -0000	1.13
+++ libtirpc.spec	26 Jul 2007 21:07:05 -0000	1.14
@@ -38,6 +38,7 @@
 Patch6:	libtirpc-0.1.7-xdr_bufferoverlow.patch
 Patch7:	libtirpc-0.1.7-bindresvport_ports.patch
 Patch8:	libtirpc-0.1.7-svc-run.patch
+Patch9:	libtirpc-0.1.7-svc-rtaddr.patch
 
 Patch100: libtirpc-0.1.7-compile.patch
 
@@ -56,6 +57,7 @@
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
+%patch9 -p1
 
 %patch100	-p1
 
@@ -138,6 +140,8 @@
 * Tue Jul 24 2007 <steved at redhat.com> 0.1.7-8
 - Change the order of network ids in /etc/netconfg
   putting ipv4 ids before ipv6. (bz 244492, 244266)
+- Make sure remote address (xp_rtaddr) is populated
+  with the correct type of address.
 
 * Mon Jul  9 2007 <steved at redhat.com> 0.1.7-7
 - Fixed infinite loop in svc_run() (bz 246677)




More information about the fedora-extras-commits mailing list