From 0009ae1f50fb10178b5f54216ce567f3cb1d7267 Mon Sep 17 00:00:00 2001
From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Date: Sat, 22 Mar 2008 17:50:59 +0900
Subject: [IPV6] SIT: Disallow 0.0.0.0 in PRL and Flush PRL if given for DEL.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
---
 net/ipv6/sit.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index ee0cc2851691..84c1ed246afb 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -215,6 +215,9 @@ ipip6_tunnel_add_prl(struct ip_tunnel *t, struct ip_tunnel_prl *a, int chg)
 	struct ip_tunnel_prl_entry *p;
 	int err = 0;
 
+	if (a->addr == htonl(INADDR_ANY))
+		return -EINVAL;
+
 	write_lock(&ipip6_lock);
 
 	for (p = t->prl; p; p = p->next) {
@@ -254,7 +257,7 @@ ipip6_tunnel_del_prl(struct ip_tunnel *t, struct ip_tunnel_prl *a)
 
 	write_lock(&ipip6_lock);
 
-	if (a) {
+	if (a && a->addr != htonl(INADDR_ANY)) {
 		for (p = &t->prl; *p; p = &(*p)->next) {
 			if ((*p)->entry.addr == a->addr) {
 				x = *p;
-- 
cgit v1.2.3