rpms/radvd/F-12 radvd-1.3-posix.patch, NONE, 1.1 radvd-1.5-overflow.patch, NONE, 1.1 .cvsignore, 1.13, 1.14 radvd.spec, 1.54, 1.55 sources, 1.13, 1.14

Jan Görig jgorig at fedoraproject.org
Thu Jan 14 12:16:49 UTC 2010


Author: jgorig

Update of /cvs/pkgs/rpms/radvd/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv17020

Modified Files:
	.cvsignore radvd.spec sources 
Added Files:
	radvd-1.3-posix.patch radvd-1.5-overflow.patch 
Log Message:
- updated do latest upstream version
- fixed #554125 - added error message


radvd-1.3-posix.patch:
 radvd.init |   14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

--- NEW FILE radvd-1.3-posix.patch ---
diff -up radvd-1.3/redhat/radvd.init.posix radvd-1.3/redhat/radvd.init
--- radvd-1.3/redhat/radvd.init.posix	2009-05-25 08:17:28.000000000 +0200
+++ radvd-1.3/redhat/radvd.init	2009-10-18 22:41:14.859329142 +0200
@@ -47,7 +47,13 @@ case "$1" in
 	daemon radvd $OPTIONS
 	RETVAL=$?
 	echo
-	[ $RETVAL -eq 0 ] && touch $LOCKFILE
+	if [ $RETVAL -eq 0 ]; then
+		touch $LOCKFILE
+	else
+		if [ -f $LOCKFILE ]; then
+			RETVAL=0
+		fi
+	fi
 	;;
   stop)
 	echo -n $"Stopping $PROG: "
@@ -65,13 +71,13 @@ case "$1" in
 	$0 start
 	RETVAL=$?
 	;;
-  reload)
+  reload|force-reload)
 	echo -n $"Reloading $PROG: "
 	killproc radvd -HUP
 	RETVAL=$?	
 	echo
 	;;
-  condrestart)
+  condrestart|try-restart)
         if [ -f $LOCKFILE ]; then
 		$0 stop
 		$0 start
@@ -79,7 +85,7 @@ case "$1" in
 	fi
         ;;  
   *)
-	echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
+	echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
 	exit 2
 esac
 

radvd-1.5-overflow.patch:
 send.c |   31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)

--- NEW FILE radvd-1.5-overflow.patch ---
diff -up radvd-1.5/send.c.patch radvd-1.5/send.c
--- radvd-1.5/send.c.patch	2009-09-07 09:59:57.000000000 +0200
+++ radvd-1.5/send.c	2010-01-13 14:54:18.634775543 +0100
@@ -66,6 +66,17 @@ send_ra_forall(int sock, struct Interfac
 	return 0;
 }
 
+static void
+send_ra_inc_len(size_t *len, int add)
+{
+	*len += add;
+	if(*len >= MSG_SIZE)
+	{
+		flog(LOG_ERR, "Too many prefixes or routes. Exiting.");
+		exit(1);
+	}
+}
+
 int
 send_ra(int sock, struct Interface *iface, struct in6_addr *dest)
 {
@@ -80,9 +91,7 @@ send_ra(int sock, struct Interface *ifac
 	struct AdvPrefix *prefix;
 	struct AdvRoute *route;
 	struct AdvRDNSS *rdnss;
-	/* XXX: we don't keep track if buff gets overflowed.  In theory the sysadmin could
-	   do that with e.g., too many advertised prefixes or routes, but buff is just so
-	   large that this should never happen and if it does, it's admin's fault :-)  */
+
 	unsigned char buff[MSG_SIZE];
 	size_t len = 0;
 	ssize_t err;
@@ -193,7 +202,7 @@ send_ra(int sock, struct Interface *ifac
 			memcpy(&pinfo->nd_opt_pi_prefix, &prefix->Prefix,
 			       sizeof(struct in6_addr));
 
-			len += sizeof(*pinfo);
+			send_ra_inc_len(&len, sizeof(*pinfo));
 		}
 
 		prefix = prefix->next;
@@ -222,7 +231,7 @@ send_ra(int sock, struct Interface *ifac
 			
 		memcpy(&rinfo->nd_opt_ri_prefix, &route->Prefix,
 		       sizeof(struct in6_addr));
-		len += sizeof(*rinfo);
+		send_ra_inc_len(&len, sizeof(*rinfo));
 
 		route = route->next;
 	}
@@ -254,7 +263,7 @@ send_ra(int sock, struct Interface *ifac
 		       sizeof(struct in6_addr));
 		memcpy(&rdnssinfo->nd_opt_rdnssi_addr3, &rdnss->AdvRDNSSAddr3,
 		       sizeof(struct in6_addr));
-		len += sizeof(*rdnssinfo) - (3-rdnss->AdvRDNSSNumber)*sizeof(struct in6_addr);
+		send_ra_inc_len(&len, sizeof(*rdnssinfo) - (3-rdnss->AdvRDNSSNumber)*sizeof(struct in6_addr));
 
 		rdnss = rdnss->next;
 	}
@@ -273,7 +282,7 @@ send_ra(int sock, struct Interface *ifac
 		mtu->nd_opt_mtu_reserved = 0; 
 		mtu->nd_opt_mtu_mtu      = htonl(iface->AdvLinkMTU);
 
-		len += sizeof(*mtu);
+		send_ra_inc_len(&len, sizeof(*mtu));
 	}
 
 	/*
@@ -290,11 +299,11 @@ send_ra(int sock, struct Interface *ifac
 		*ucp++  = ND_OPT_SOURCE_LINKADDR;
 		*ucp++  = (uint8_t) ((iface->if_hwaddr_len + 16 + 63) >> 6);
 
-		len += 2 * sizeof(uint8_t);
+		send_ra_inc_len(&len, 2 * sizeof(uint8_t));
 
 		i = (iface->if_hwaddr_len + 7) >> 3;
 		memcpy(buff + len, iface->if_hwaddr, i);
-		len += i;
+		send_ra_inc_len(&len, i);
 	}
 
 	/*
@@ -320,7 +329,7 @@ send_ra(int sock, struct Interface *ifac
 		a_ival.adv_ival	= htonl(ival);
 
 		memcpy(buff + len, &a_ival, sizeof(a_ival));
-		len += sizeof(a_ival);
+		send_ra_inc_len(&len, sizeof(a_ival));
 	}
 
 	/*
@@ -342,7 +351,7 @@ send_ra(int sock, struct Interface *ifac
 		ha_info.lifetime	= htons(iface->HomeAgentLifetime);
 
 		memcpy(buff + len, &ha_info, sizeof(ha_info));
-		len += sizeof(ha_info);
+		send_ra_inc_len(&len, sizeof(ha_info));
 	}
 	
 	iov.iov_len  = len;


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/radvd/F-12/.cvsignore,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -p -r1.13 -r1.14
--- .cvsignore	10 Jul 2009 09:43:48 -0000	1.13
+++ .cvsignore	14 Jan 2010 12:16:49 -0000	1.14
@@ -1 +1 @@
-radvd-1.3.tar.gz
+radvd-1.5.tar.gz


Index: radvd.spec
===================================================================
RCS file: /cvs/pkgs/rpms/radvd/F-12/radvd.spec,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -p -r1.54 -r1.55
--- radvd.spec	27 Jul 2009 02:44:51 -0000	1.54
+++ radvd.spec	14 Jan 2010 12:16:49 -0000	1.55
@@ -4,8 +4,8 @@
 %define RADVD_UID 75
 Summary:    A Router Advertisement daemon
 Name:       radvd
-Version:    1.3
-Release:    2%{?dist}
+Version:    1.5
+Release:    1%{?dist}
 # The code includes the advertising clause, so it's GPL-incompatible
 License:    BSD with advertising
 Group:      System Environment/Daemons
@@ -17,6 +17,8 @@ Requires(post):     chkconfig
 Requires(pre):      /usr/sbin/useradd
 BuildRequires:      flex, byacc
 BuildRoot:          %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+Patch1:  radvd-1.3-posix.patch
+Patch2:  radvd-1.5-overflow.patch
 
 %description
 radvd is the router advertisement daemon for IPv6.  It listens to router
@@ -32,6 +34,9 @@ services.
 %prep
 %setup -q
 
+%patch1 -p1 -b .posix
+%patch2 -p1 -b .overflow
+
 %build
 export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIE" 
 export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen'
@@ -92,6 +97,10 @@ fi
 %{_sbindir}/radvdump
 
 %changelog
+* Thu Jan 14 2010 Jan Gorig <jgorig at redhat.com> - 1.5-1
+- updated do latest upstream version
+- fixed #554125 - added error message
+
 * Sun Jul 26 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.3-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/radvd/F-12/sources,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -p -r1.13 -r1.14
--- sources	10 Jul 2009 09:43:49 -0000	1.13
+++ sources	14 Jan 2010 12:16:49 -0000	1.14
@@ -1 +1 @@
-f303c8cd61aaa763b506e16e51b53eea  radvd-1.3.tar.gz
+78598b60ed9d64920739189c3dc0934d  radvd-1.5.tar.gz



More information about the scm-commits mailing list