From 7e5bf40cac5234f63d0f97d8d9c7ebe8b6d60fcc Mon Sep 17 00:00:00 2001
From: Steven Barth <cyrus@openwrt.org>
Date: Tue, 14 Apr 2015 08:31:53 +0000
Subject: [PATCH] odhcpd: avoid illegal memory access in some corner cases

Signed-off-by: Steven Barth <steven@midlink.org>

SVN-Revision: 45428
---
 package/network/ipv6/odhcp6c/Makefile            | 15 +++------------
 package/network/ipv6/odhcp6c/files/dhcpv6.script |  8 ++++++++
 package/network/services/odhcpd/Makefile         |  4 ++--
 3 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/package/network/ipv6/odhcp6c/Makefile b/package/network/ipv6/odhcp6c/Makefile
index 61f9574c14..ce36cb76ff 100644
--- a/package/network/ipv6/odhcp6c/Makefile
+++ b/package/network/ipv6/odhcp6c/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2012-2014 OpenWrt.org
+# Copyright (C) 2012-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,24 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=odhcp6c
-PKG_VERSION:=2015-04-10
+PKG_VERSION:=2015-04-13
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=https://github.com/sbyx/odhcp6c.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=c3bbeced0f204b6b9571148ae84227105baaf179
+PKG_SOURCE_VERSION:=19c64c524614ea7fdbcedcc50d6980f096ccadb9
 PKG_MAINTAINER:=Steven Barth <steven@midlink.org>
 PKG_LICENSE:=GPL-2.0
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
 
-ifneq ($(CONFIG_PACKAGE_odhcp6c_ext_prefix_class),0)
-  CMAKE_OPTIONS += -DEXT_PREFIX_CLASS=$(CONFIG_PACKAGE_odhcp6c_ext_prefix_class)
-endif
-
 ifneq ($(CONFIG_PACKAGE_odhcp6c_ext_cer_id),0)
   CMAKE_OPTIONS += -DEXT_CER_ID=$(CONFIG_PACKAGE_odhcp6c_ext_cer_id)
 endif
@@ -38,11 +34,6 @@ define Package/odhcp6c
 endef
 
 define Package/odhcp6c/config
-  config PACKAGE_odhcp6c_ext_prefix_class
-    int "Prefix Class Extension ID (0 = disabled)"
-    depends on PACKAGE_odhcp6c
-    default 0
-
   config PACKAGE_odhcp6c_ext_cer_id
     int "CER-ID Extension ID (0 = disabled)"
     depends on PACKAGE_odhcp6c
diff --git a/package/network/ipv6/odhcp6c/files/dhcpv6.script b/package/network/ipv6/odhcp6c/files/dhcpv6.script
index 8cfa929002..be74b01e4e 100755
--- a/package/network/ipv6/odhcp6c/files/dhcpv6.script
+++ b/package/network/ipv6/odhcp6c/files/dhcpv6.script
@@ -20,6 +20,14 @@ setup_interface () {
 		proto_add_dns_server "$dns"
 	done
 
+	for radomain in $RA_DOMAINS; do
+		local duplicate=0
+		for domain in $DOMAINS; do
+			[ "$radomain" = "$domain" ] && duplicate=1
+		done
+		[ "$duplicate" = 0 ] && DOMAINS="$DOMAINS $radomain"
+	done
+
 	for domain in $DOMAINS; do
 		proto_add_dns_search "$domain"
 	done
diff --git a/package/network/services/odhcpd/Makefile b/package/network/services/odhcpd/Makefile
index 3e9841f3f5..a3817c0a27 100644
--- a/package/network/services/odhcpd/Makefile
+++ b/package/network/services/odhcpd/Makefile
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=odhcpd
-PKG_VERSION:=2015-04-10
+PKG_VERSION:=2015-04-13
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=git://github.com/sbyx/odhcpd.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=e23972527f93a3d2a5412400384519ff550708b7
+PKG_SOURCE_VERSION:=a06dd6481cd046e4856774ac32cdc11f4bc721e2
 
 PKG_MAINTAINER:=Steven Barth <steven@midlink.org>
 PKG_LICENSE:=GPL-2.0
-- 
GitLab