[dhcp] Make sure range6 is correct for subnet6 where it's declared (#902966)

Jiří Popelka jpopelka at fedoraproject.org
Wed Jan 23 16:46:52 UTC 2013


commit 67cff45c16a5482b4e2a0f5264a2f1ef83f9cf31
Author: Jiri Popelka <jpopelka at redhat.com>
Date:   Wed Jan 23 17:45:45 2013 +0100

    Make sure range6 is correct for subnet6 where it's declared (#902966)

 dhcp-4.2.5-range6.patch |   42 ++++++++++++++++++++++++++++++++++++++++++
 dhcp.spec               |   10 +++++++++-
 2 files changed, 51 insertions(+), 1 deletions(-)
---
diff --git a/dhcp-4.2.5-range6.patch b/dhcp-4.2.5-range6.patch
new file mode 100644
index 0000000..754d899
--- /dev/null
+++ b/dhcp-4.2.5-range6.patch
@@ -0,0 +1,42 @@
+diff --git a/server/confpars.c b/server/confpars.c
+index 12ab0e6..4454be9 100644
+--- a/server/confpars.c
++++ b/server/confpars.c
+@@ -3756,6 +3756,19 @@ add_ipv6_pool_to_subnet(struct subnet *subnet, u_int16_t type,
+ 	share->ipv6_pools[num_pools+1] = NULL;
+ }
+ 
++static void
++check_addr_in_subnet(struct subnet *subnet, struct iaddr *addr) {
++	char lowbuf [INET6_ADDRSTRLEN], netbuf [INET6_ADDRSTRLEN];
++
++	if (!addr_eq(subnet->net, subnet_number(*addr, subnet->netmask))) {
++		strcpy(lowbuf, piaddr(*addr));
++		strcpy(netbuf, piaddr(subnet->net));
++		log_fatal("bad range6, address %s not in subnet6 %s/%d",
++			lowbuf, netbuf, subnet->prefix_len);
++	}
++
++}
++
+ /* address-range6-declaration :== ip-address6 ip-address6 SEMI
+ 			       | ip-address6 SLASH number SEMI
+ 			       | ip-address6 [SLASH number] TEMPORARY SEMI */
+@@ -3788,6 +3801,8 @@ parse_address_range6(struct parse *cfile, struct group *group) {
+ 		return;
+ 	}
+ 
++	check_addr_in_subnet(group->subnet, &lo);
++
+ 	/* 
+ 	 * See if we we're using range or CIDR notation or TEMPORARY
+ 	 */
+@@ -3855,6 +3870,8 @@ parse_address_range6(struct parse *cfile, struct group *group) {
+ 			return;
+ 		}
+ 
++		check_addr_in_subnet(group->subnet, &hi);
++
+ 		/*
+ 		 * Convert our range to a set of CIDR networks.
+ 		 */
diff --git a/dhcp.spec b/dhcp.spec
index 5d8add4..416cd8b 100644
--- a/dhcp.spec
+++ b/dhcp.spec
@@ -18,7 +18,7 @@
 Summary:  Dynamic host configuration protocol software
 Name:     dhcp
 Version:  4.2.5
-Release:  3%{?dist}
+Release:  4%{?dist}
 # NEVER CHANGE THE EPOCH on this package.  The previous maintainer (prior to
 # dcantrell maintaining the package) made incorrect use of the epoch and
 # that's why it is at 12 now.  It should have never been used, but it was.
@@ -78,6 +78,7 @@ Patch43:  dhcp-4.2.5b1-atf-pkgconfig.patch
 Patch44:  dhcp-4.2.4-P1-interval.patch
 Patch45:  dhcp-4.2.4-P2-conflex-do-forward-updates.patch
 Patch46:  dhcp-4.2.4-P2-dupl-key.patch
+Patch47:  dhcp-4.2.5-range6.patch
 
 BuildRequires: autoconf
 BuildRequires: automake
@@ -334,6 +335,10 @@ rm -rf includes/isc-dhcp
 # (Submitted to dhcp-bugs at isc.org - [ISC-Bugs #31892])
 %patch46 -p1 -b .dupl-key
 
+# Make sure range6 is correct for subnet6 where it's declared (#902966)
+# (Submitted to dhcp-bugs at isc.org - [ISC-Bugs #32453])
+%patch47 -p1 -b .range6
+
 # Update paths in all man pages
 for page in client/dhclient.conf.5 client/dhclient.leases.5 \
             client/dhclient-script.8 client/dhclient.8 ; do
@@ -577,6 +582,9 @@ done
 
 
 %changelog
+* Wed Jan 23 2013 Jiri Popelka <jpopelka at redhat.com> - 12:4.2.5-4
+- Make sure range6 is correct for subnet6 where it's declared (#902966)
+
 * Fri Jan 18 2013 Jiri Popelka <jpopelka at redhat.com> - 12:4.2.5-3
 - simplify the previously added triggerun scriptlet
 


More information about the scm-commits mailing list