rpms/ipsec-tools/devel ipsec-tools-0.7.3-aliasing.patch, NONE, 1.1 ipsec-tools.spec, 1.66, 1.67 ipsec-tools-0.7.2-review.patch, 1.1, NONE

Tomáš Mráz tmraz at fedoraproject.org
Tue Aug 18 19:03:09 UTC 2009


Author: tmraz

Update of /cvs/pkgs/rpms/ipsec-tools/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv29594

Modified Files:
	ipsec-tools.spec 
Added Files:
	ipsec-tools-0.7.3-aliasing.patch 
Removed Files:
	ipsec-tools-0.7.2-review.patch 
Log Message:
* Tue Aug 18 2009 Tomas Mraz <tmraz at redhat.com> - 0.7.3-1
- update to a new upstream version
- fix service stop in preun (#515880)


ipsec-tools-0.7.3-aliasing.patch:
 ipsec_doi.c |   74 +++++++++++++++++++++++++-----------------------------------
 isakmp.c    |   27 ++++++++-------------
 sockmisc.c  |   35 +++++++++++++---------------
 sockmisc.h  |   12 +++++----
 4 files changed, 66 insertions(+), 82 deletions(-)

--- NEW FILE ipsec-tools-0.7.3-aliasing.patch ---
diff -up ipsec-tools-0.7.3/src/racoon/ipsec_doi.c.review ipsec-tools-0.7.3/src/racoon/ipsec_doi.c
--- ipsec-tools-0.7.3/src/racoon/ipsec_doi.c.review	2009-06-19 09:32:52.000000000 +0200
+++ ipsec-tools-0.7.3/src/racoon/ipsec_doi.c	2009-08-18 20:59:00.000000000 +0200
@@ -750,7 +750,7 @@ t2isakmpsa(trns, sa)
 			int error = -1;
 			iconv_t cd = (iconv_t) -1;
 			size_t srcleft, dstleft, rv;
-			__iconv_const char *src;
+			char *src;
 			char *dst;
 			int len = ntohs(d->lorv);
 
@@ -799,13 +799,13 @@ t2isakmpsa(trns, sa)
 				goto out;
 			}
 
-			src = (__iconv_const char *)(d + 1);
+			src = (char *)(d + 1);
 			srcleft = len;
 
 			dst = sa->gssid->v;
 			dstleft = len / 2;
 
-			rv = iconv(cd, (__iconv_const char **)&src, &srcleft, 
+			rv = iconv(cd, &src, &srcleft, 
 				   &dst, &dstleft);
 			if (rv != 0) {
 				if (rv == -1) {
@@ -2880,7 +2880,7 @@ setph1attr(sa, buf)
 			} else {
 				size_t dstleft = sa->gssid->l * 2;
 				size_t srcleft = sa->gssid->l;
-				const char *src = (const char *)sa->gssid->v;
+				char *src = (char *)sa->gssid->v;
 				char *odst, *dst = racoon_malloc(dstleft);
 				iconv_t cd;
 				size_t rv;
@@ -2896,7 +2896,7 @@ setph1attr(sa, buf)
 					goto gssid_done;
 				}
 				odst = dst;
-				rv = iconv(cd, (__iconv_const char **)&src, 
+				rv = iconv(cd, &src, 
 				    &srcleft, &dst, &dstleft);
 				if (rv != 0) {
 					if (rv == -1) {
@@ -4381,29 +4381,20 @@ ipsecdoi_id2str(id)
 	char *dat;
 	static char buf[BUFLEN];
 	struct ipsecdoi_id_b *id_b = (struct ipsecdoi_id_b *)id->v;
-	struct sockaddr_storage saddr_storage;
-	struct sockaddr        *saddr;
-	struct sockaddr_in     *saddr_in;
-	struct sockaddr_in6    *saddr_in6;
+	union allsaddr saddr;
 	u_int plen = 0;
 
-	saddr     = (struct sockaddr *)&saddr_storage;
-	saddr_in  = (struct sockaddr_in *)&saddr_storage;
-	saddr_in6 = (struct sockaddr_in6 *)&saddr_storage;
-
-	
 	switch (id_b->type) {
 	case IPSECDOI_ID_IPV4_ADDR:
 	case IPSECDOI_ID_IPV4_ADDR_SUBNET:
 	case IPSECDOI_ID_IPV4_ADDR_RANGE:
 
 #ifndef __linux__
-		saddr->sa_len = sizeof(struct sockaddr_in);
+		saddr.sa.sa_len = sizeof(struct sockaddr_in);
 #endif
-		saddr->sa_family = AF_INET;
-
-		saddr_in->sin_port = IPSEC_PORT_ANY;
-		memcpy(&saddr_in->sin_addr,
+		saddr.sa.sa_family = AF_INET;
+		saddr.sin.sin_port = IPSEC_PORT_ANY;
+		memcpy(&saddr.sin.sin_addr,
 			id->v + sizeof(*id_b), sizeof(struct in_addr));
 		break;
 #ifdef INET6
@@ -4412,15 +4403,14 @@ ipsecdoi_id2str(id)
 	case IPSECDOI_ID_IPV6_ADDR_RANGE:
 
 #ifndef __linux__
-		saddr->sa_len = sizeof(struct sockaddr_in6);
+		saddr.sa.sa_len = sizeof(struct sockaddr_in6);
 #endif
-		saddr->sa_family = AF_INET6;
-
-		saddr_in6->sin6_port = IPSEC_PORT_ANY;
-		memcpy(&saddr_in6->sin6_addr,
+		saddr.sa.sa_family = AF_INET6;
+		saddr.sin6.sin6_port = IPSEC_PORT_ANY;
+		memcpy(&saddr.sin6.sin6_addr,
 			id->v + sizeof(*id_b), sizeof(struct in6_addr));
-		saddr_in6->sin6_scope_id =
-			(IN6_IS_ADDR_LINKLOCAL(&saddr_in6->sin6_addr)
+		saddr.sin6.sin6_scope_id =
+			(IN6_IS_ADDR_LINKLOCAL(&saddr.sin6.sin6_addr)
 				? ((struct sockaddr_in6 *)id_b)->sin6_scope_id
 				: 0);
 		break;
@@ -4432,7 +4422,7 @@ ipsecdoi_id2str(id)
 #ifdef INET6
 	case IPSECDOI_ID_IPV6_ADDR:
 #endif
-		len = snprintf( buf, BUFLEN, "%s", saddrwop2str(saddr));
+		len = snprintf( buf, BUFLEN, "%s", saddrwop2str(&saddr.sa));
 		break;
 
 	case IPSECDOI_ID_IPV4_ADDR_SUBNET:
@@ -4488,46 +4478,46 @@ ipsecdoi_id2str(id)
 			plen += l;
 		}
 
-		len = snprintf( buf, BUFLEN, "%s/%i", saddrwop2str(saddr), plen);
+		len = snprintf( buf, BUFLEN, "%s/%i", saddrwop2str(&saddr.sa), plen);
 	    }
 		break;
 
 	case IPSECDOI_ID_IPV4_ADDR_RANGE:
 
-		len = snprintf( buf, BUFLEN, "%s-", saddrwop2str(saddr));
+		len = snprintf( buf, BUFLEN, "%s-", saddrwop2str(&saddr.sa));
 
 #ifndef __linux__
-		saddr->sa_len = sizeof(struct sockaddr_in);
+		saddr.sa.sa_len = sizeof(struct sockaddr_in);
 #endif
-		saddr->sa_family = AF_INET;
-		saddr_in->sin_port = IPSEC_PORT_ANY;
-		memcpy(&saddr_in->sin_addr,
+		saddr.sa.sa_family = AF_INET;
+		saddr.sin.sin_port = IPSEC_PORT_ANY;
+		memcpy(&saddr.sin.sin_addr,
 			id->v + sizeof(*id_b) + sizeof(struct in_addr),
 			sizeof(struct in_addr));
 
-		len += snprintf( buf + len, BUFLEN - len, "%s", saddrwop2str(saddr));
+		len += snprintf( buf + len, BUFLEN - len, "%s", saddrwop2str(&saddr.sa));
 
 		break;
 
 #ifdef INET6
 	case IPSECDOI_ID_IPV6_ADDR_RANGE:
 
-		len = snprintf( buf, BUFLEN, "%s-", saddrwop2str(saddr));
+		len = snprintf( buf, BUFLEN, "%s-", saddrwop2str(&saddr.sa));
 
 #ifndef __linux__
-		saddr->sa_len = sizeof(struct sockaddr_in6);
+		saddr.sa.sa_len = sizeof(struct sockaddr_in6);
 #endif
-		saddr->sa_family = AF_INET6;
-		saddr_in6->sin6_port = IPSEC_PORT_ANY;
-		memcpy(&saddr_in6->sin6_addr,
+		saddr.sa.sa_family = AF_INET6;
+		saddr.sin6.sin6_port = IPSEC_PORT_ANY;
+		memcpy(&saddr.sin6.sin6_addr,
 			id->v + sizeof(*id_b) + sizeof(struct in6_addr),
 			sizeof(struct in6_addr));
-		saddr_in6->sin6_scope_id =
-			(IN6_IS_ADDR_LINKLOCAL(&saddr_in6->sin6_addr)
+		saddr.sin6.sin6_scope_id =
+			(IN6_IS_ADDR_LINKLOCAL(&saddr.sin6.sin6_addr)
 				? ((struct sockaddr_in6 *)id_b)->sin6_scope_id
 				: 0);
 
-		len += snprintf( buf + len, BUFLEN - len, "%s", saddrwop2str(saddr));
+		len += snprintf( buf + len, BUFLEN - len, "%s", saddrwop2str(&saddr.sa));
 
 		break;
 #endif
diff -up ipsec-tools-0.7.3/src/racoon/isakmp.c.review ipsec-tools-0.7.3/src/racoon/isakmp.c
--- ipsec-tools-0.7.3/src/racoon/isakmp.c.review	2009-08-18 19:02:21.000000000 +0200
+++ ipsec-tools-0.7.3/src/racoon/isakmp.c	2009-08-18 19:02:21.000000000 +0200
@@ -198,13 +198,15 @@ isakmp_handler(so_isakmp)
 	union {
 		char		buf[sizeof (isakmp) + 4];
 		u_int32_t	non_esp[2];
-		char		lbuf[sizeof(struct udphdr) + 
+		struct		{
+				     struct udphdr udp;
 #ifdef __linux
-				     sizeof(struct iphdr) + 
+				     struct iphdr ip;
 #else
-				     sizeof(struct ip) + 
+				     struct ip ip;
 #endif
-				     sizeof(isakmp) + 4];
+				     char buf[sizeof(isakmp) + 4];
+				} lbuf;
 	} x;
 	struct sockaddr_storage remote;
 	struct sockaddr_storage local;
@@ -240,22 +242,13 @@ isakmp_handler(so_isakmp)
 
 	/* Lucent IKE in UDP encapsulation */
 	{
-		struct udphdr *udp;
 #ifdef __linux__
-		struct iphdr *ip;
-
-		udp = (struct udphdr *)&x.lbuf[0];
-		if (ntohs(udp->dest) == 501) {
-			ip = (struct iphdr *)(x.lbuf + sizeof(*udp));
-			extralen += sizeof(*udp) + ip->ihl;
+		if (ntohs(x.lbuf.udp.dest) == 501) {
+			extralen += sizeof(x.lbuf.udp) + x.lbuf.ip.ihl;
 		}
 #else
-		struct ip *ip;
-
-		udp = (struct udphdr *)&x.lbuf[0];
-		if (ntohs(udp->uh_dport) == 501) {
-			ip = (struct ip *)(x.lbuf + sizeof(*udp));
-			extralen += sizeof(*udp) + ip->ip_hl;
+		if (ntohs(lbuf.udp.uh_dport) == 501) {
+			extralen += sizeof(x.lbuf.udp) + x.lbuf.ip.ip_hl;
 		}
 #endif
 	}	
diff -up ipsec-tools-0.7.3/src/racoon/sockmisc.c.review ipsec-tools-0.7.3/src/racoon/sockmisc.c
--- ipsec-tools-0.7.3/src/racoon/sockmisc.c.review	2007-08-01 13:52:22.000000000 +0200
+++ ipsec-tools-0.7.3/src/racoon/sockmisc.c	2009-08-18 19:02:21.000000000 +0200
@@ -317,8 +317,9 @@ recvfromto(s, buf, buflen, flags, from, 
 	u_int *tolen;
 {
 	int otolen;
-	u_int len;
-	struct sockaddr_storage ss;
+	socklen_t slen;
+	int len;
+	union allsaddr sa;
 	struct msghdr m;
 	struct cmsghdr *cm;
 	struct iovec iov[2];
@@ -331,8 +332,8 @@ recvfromto(s, buf, buflen, flags, from, 
 	struct sockaddr_in6 *sin6;
 #endif
 
-	len = sizeof(ss);
-	if (getsockname(s, (struct sockaddr *)&ss, &len) < 0) {
+	slen = sizeof(sa);
+	if (getsockname(s, &sa.sa, &slen) < 0) {
 		plog(LLV_ERROR, LOCATION, NULL,
 			"getsockname (%s)\n", strerror(errno));
 		return -1;
@@ -365,7 +366,7 @@ recvfromto(s, buf, buflen, flags, from, 
 			"cmsg %d %d\n", cm->cmsg_level, cm->cmsg_type);)
 #endif
 #if defined(INET6) && defined(INET6_ADVAPI)
-		if (ss.ss_family == AF_INET6
+		if (sa.sa.sa_family == AF_INET6
 		 && cm->cmsg_level == IPPROTO_IPV6
 		 && cm->cmsg_type == IPV6_PKTINFO
 		 && otolen >= sizeof(*sin6)) {
@@ -384,14 +385,13 @@ recvfromto(s, buf, buflen, flags, from, 
 				sin6->sin6_scope_id = pi->ipi6_ifindex;
 			else
 				sin6->sin6_scope_id = 0;
-			sin6->sin6_port =
-				((struct sockaddr_in6 *)&ss)->sin6_port;
+			sin6->sin6_port = sa.sin6.sin6_port;
 			otolen = -1;	/* "to" already set */
 			continue;
 		}
 #endif
 #ifdef __linux__
-		if (ss.ss_family == AF_INET
+		if (sa.sa.sa_family == AF_INET
 		 && cm->cmsg_level == IPPROTO_IP
 		 && cm->cmsg_type == IP_PKTINFO
 		 && otolen >= sizeof(sin)) {
@@ -402,14 +402,13 @@ recvfromto(s, buf, buflen, flags, from, 
 			sin->sin_family = AF_INET;
 			memcpy(&sin->sin_addr, &pi->ipi_addr,
 				sizeof(sin->sin_addr));
-			sin->sin_port =
-				((struct sockaddr_in *)&ss)->sin_port;
+			sin->sin_port = sa.sin.sin_port;
 			otolen = -1;	/* "to" already set */
 			continue;
 		}
 #endif
 #if defined(INET6) && defined(IPV6_RECVDSTADDR)
-		if (ss.ss_family == AF_INET6
+		if (sa.sa.sa_family == AF_INET6
 		      && cm->cmsg_level == IPPROTO_IPV6
 		      && cm->cmsg_type == IPV6_RECVDSTADDR
 		      && otolen >= sizeof(*sin6)) {
@@ -420,14 +419,13 @@ recvfromto(s, buf, buflen, flags, from, 
 			sin6->sin6_len = sizeof(*sin6);
 			memcpy(&sin6->sin6_addr, CMSG_DATA(cm),
 				sizeof(sin6->sin6_addr));
-			sin6->sin6_port =
-				((struct sockaddr_in6 *)&ss)->sin6_port;
+			sin6->sin6_port = sa.sin6.sin6_port;
 			otolen = -1;	/* "to" already set */
 			continue;
 		}
 #endif
 #ifndef __linux__
-		if (ss.ss_family == AF_INET
+		if (sa.sa.sa_family == AF_INET
 		 && cm->cmsg_level == IPPROTO_IP
 		 && cm->cmsg_type == IP_RECVDSTADDR
 		 && otolen >= sizeof(*sin)) {
@@ -438,7 +436,7 @@ recvfromto(s, buf, buflen, flags, from, 
 			sin->sin_len = sizeof(*sin);
 			memcpy(&sin->sin_addr, CMSG_DATA(cm),
 				sizeof(sin->sin_addr));
-			sin->sin_port = ((struct sockaddr_in *)&ss)->sin_port;
+			sin->sin_port = sa.sin.sin_port;
 			otolen = -1;	/* "to" already set */
 			continue;
 		}
@@ -458,7 +456,8 @@ sendfromto(s, buf, buflen, src, dst, cnt
 	struct sockaddr *dst;
 {
 	struct sockaddr_storage ss;
-	u_int len;
+	socklen_t slen;
+	int len = 0;
 	int i;
 
 	if (src->sa_family != dst->sa_family) {
@@ -467,8 +466,8 @@ sendfromto(s, buf, buflen, src, dst, cnt
 		return -1;
 	}
 
-	len = sizeof(ss);
-	if (getsockname(s, (struct sockaddr *)&ss, &len) < 0) {
+	slen = sizeof(ss);
+	if (getsockname(s, (struct sockaddr *)&ss, &slen) < 0) {
 		plog(LLV_ERROR, LOCATION, NULL,
 			"getsockname (%s)\n", strerror(errno));
 		return -1;
diff -up ipsec-tools-0.7.3/src/racoon/sockmisc.h.review ipsec-tools-0.7.3/src/racoon/sockmisc.h
--- ipsec-tools-0.7.3/src/racoon/sockmisc.h.review	2006-09-09 18:22:10.000000000 +0200
+++ ipsec-tools-0.7.3/src/racoon/sockmisc.h	2009-08-18 19:02:21.000000000 +0200
@@ -34,12 +34,14 @@
 #ifndef _SOCKMISC_H
 #define _SOCKMISC_H
 
+union allsaddr {
+	struct sockaddr sa;
+	struct sockaddr_in sin;
+	struct sockaddr_in6 sin6;
+};
+
 struct netaddr {
-	union {
-		struct sockaddr sa;
-		struct sockaddr_in sin;
-		struct sockaddr_in6 sin6;
-	} sa;
+	union allsaddr sa;
 	unsigned long prefix;
 };
 


Index: ipsec-tools.spec
===================================================================
RCS file: /cvs/pkgs/rpms/ipsec-tools/devel/ipsec-tools.spec,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -p -r1.66 -r1.67
--- ipsec-tools.spec	25 Jul 2009 03:32:20 -0000	1.66
+++ ipsec-tools.spec	18 Aug 2009 19:03:09 -0000	1.67
@@ -1,6 +1,6 @@
 Name: ipsec-tools
-Version: 0.7.2
-Release: 3%{?dist}
+Version: 0.7.3
+Release: 1%{?dist}
 Summary: Tools for configuring and using IPSEC
 License: BSD
 Group: System Environment/Base
@@ -20,7 +20,7 @@ Patch10: ipsec-tools-0.7.2-natt-linux.pa
 Patch11: ipsec-tools-0.7.1-pie.patch
 Patch13: ipsec-tools-0.7.1-dpd-fixes.patch
 Patch14: ipsec-tools-0.7.2-moreleaks.patch
-Patch15: ipsec-tools-0.7.2-review.patch
+Patch15: ipsec-tools-0.7.3-aliasing.patch
 Patch16: ipsec-tools-0.7.2-nodevel.patch
 
 BuildRequires: openssl-devel, krb5-devel, bison, flex, automake, libtool
@@ -101,7 +101,7 @@ fi
 
 %preun
 if [ $1 = 0 ]; then
-        service %{name} stop > /dev/null 2>&1
+        service racoon stop > /dev/null 2>&1
         /sbin/chkconfig --del racoon
 fi
 
@@ -123,6 +123,10 @@ fi
 %config(noreplace) /etc/racoon/racoon.conf
 
 %changelog
+* Tue Aug 18 2009 Tomas Mraz <tmraz at redhat.com> - 0.7.3-1
+- update to a new upstream version
+- fix service stop in preun (#515880)
+
 * Fri Jul 24 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.7.2-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
 


--- ipsec-tools-0.7.2-review.patch DELETED ---




More information about the fedora-extras-commits mailing list