lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 08 Sep 2008 14:27:23 +0100
From:	David Howells <dhowells@...hat.com>
To:	paul.moore@...com
Cc:	netdev@...r.kernel.org, dhowells@...hat.com
Subject: [PATCH] Fix no-IPv6 warnings and errors in the netlabel code

Fix warnings and errors in the netlabel code when compiled with CONFIG_IPV6=n.

Signed-off-by: David Howells <dhowells@...hat.com>
---

 net/netlabel/netlabel_domainhash.c |   10 +++++++++-
 net/netlabel/netlabel_mgmt.c       |   22 ++++++++++++++++++----
 net/netlabel/netlabel_unlabeled.c  |   28 +++++++++++++++++++++++++---
 3 files changed, 52 insertions(+), 8 deletions(-)


diff --git a/net/netlabel/netlabel_domainhash.c b/net/netlabel/netlabel_domainhash.c
index 25d17d2..a15160f 100644
--- a/net/netlabel/netlabel_domainhash.c
+++ b/net/netlabel/netlabel_domainhash.c
@@ -75,8 +75,10 @@ static void netlbl_domhsh_free_entry(struct rcu_head *entry)
 	struct netlbl_dom_map *ptr;
 	struct netlbl_af4list *iter4;
 	struct netlbl_af4list *tmp4;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 	struct netlbl_af6list *iter6;
 	struct netlbl_af6list *tmp6;
+#endif
 
 	ptr = container_of(entry, struct netlbl_dom_map, rcu);
 	if (ptr->type == NETLBL_NLTYPE_ADDRSELECT) {
@@ -298,7 +300,9 @@ int netlbl_domhsh_add(struct netlbl_dom_map *entry,
 	int ret_val = 0;
 	struct netlbl_dom_map *entry_old;
 	struct netlbl_af4list *iter4;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 	struct netlbl_af6list *iter6;
+#endif
 
 	rcu_read_lock();
 
@@ -337,12 +341,16 @@ int netlbl_domhsh_add(struct netlbl_dom_map *entry,
 	} else if (entry_old->type == NETLBL_NLTYPE_ADDRSELECT &&
 		   entry->type == NETLBL_NLTYPE_ADDRSELECT) {
 		struct netlbl_af4list *tmp4;
-		struct netlbl_af6list *tmp6;
 		struct list_head *old_list4;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+		struct netlbl_af6list *tmp6;
 		struct list_head *old_list6;
+#endif
 
 		old_list4 = &entry_old->type_def.addrsel->list4;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 		old_list6 = &entry_old->type_def.addrsel->list6;
+#endif
 
 		/* we only allow the addition of address selectors if all of
 		 * the selectors do not exist in the existing domain map */
diff --git a/net/netlabel/netlabel_mgmt.c b/net/netlabel/netlabel_mgmt.c
index 5dc7d0f..f8d2b44 100644
--- a/net/netlabel/netlabel_mgmt.c
+++ b/net/netlabel/netlabel_mgmt.c
@@ -137,9 +137,13 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
 		goto add_failure;
 	}
 	if ((info->attrs[NLBL_MGMT_A_IPV4ADDR] &&
-	     info->attrs[NLBL_MGMT_A_IPV4MASK]) ||
+	     info->attrs[NLBL_MGMT_A_IPV4MASK])
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+	    ||
 	    (info->attrs[NLBL_MGMT_A_IPV6ADDR] &&
-	     info->attrs[NLBL_MGMT_A_IPV6MASK])) {
+	     info->attrs[NLBL_MGMT_A_IPV6MASK])
+#endif
+	    ) {
 		addrmap = kzalloc(sizeof(*addrmap), GFP_KERNEL);
 		if (addrmap == NULL) {
 			ret_val = -ENOMEM;
@@ -148,7 +152,10 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
 		INIT_LIST_HEAD(&addrmap->list4);
 		INIT_LIST_HEAD(&addrmap->list6);
 
-		if (info->attrs[NLBL_MGMT_A_IPV4ADDR]) {
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+		if (info->attrs[NLBL_MGMT_A_IPV4ADDR])
+#endif
+		{
 			struct in_addr *addr;
 			struct in_addr *mask;
 			struct netlbl_domaddr4_map *map;
@@ -184,7 +191,9 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
 				kfree(map);
 				goto add_failure;
 			}
-		} else {
+		}
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+		else {
 			struct in6_addr *addr;
 			struct in6_addr *mask;
 			struct netlbl_domaddr6_map *map;
@@ -223,6 +232,7 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
 				goto add_failure;
 			}
 		}
+#endif
 
 		entry->type = NETLBL_NLTYPE_ADDRSELECT;
 		entry->type_def.addrsel = addrmap;
@@ -262,7 +272,9 @@ static int netlbl_mgmt_listentry(struct sk_buff *skb,
 	struct nlattr *nla_a;
 	struct nlattr *nla_b;
 	struct netlbl_af4list *iter4;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 	struct netlbl_af6list *iter6;
+#endif
 
 	if (entry->domain != NULL) {
 		ret_val = nla_put_string(skb,
@@ -314,6 +326,7 @@ static int netlbl_mgmt_listentry(struct sk_buff *skb,
 
 			nla_nest_end(skb, nla_b);
 		}
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 		netlbl_af6list_foreach_rcu(iter6,
 					   &entry->type_def.addrsel->list6) {
 			struct netlbl_domaddr6_map *map6;
@@ -340,6 +353,7 @@ static int netlbl_mgmt_listentry(struct sk_buff *skb,
 
 			nla_nest_end(skb, nla_b);
 		}
+#endif
 
 		nla_nest_end(skb, nla_a);
 		break;
diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c
index 8a87378..349fb47 100644
--- a/net/netlabel/netlabel_unlabeled.c
+++ b/net/netlabel/netlabel_unlabeled.c
@@ -205,8 +205,10 @@ static void netlbl_unlhsh_free_iface(struct rcu_head *entry)
 	struct netlbl_unlhsh_iface *iface;
 	struct netlbl_af4list *iter4;
 	struct netlbl_af4list *tmp4;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 	struct netlbl_af6list *iter6;
 	struct netlbl_af6list *tmp6;
+#endif
 
 	iface = container_of(entry, struct netlbl_unlhsh_iface, rcu);
 
@@ -217,10 +219,12 @@ static void netlbl_unlhsh_free_iface(struct rcu_head *entry)
 		netlbl_af4list_remove_entry(iter4);
 		kfree(netlbl_unlhsh_addr4_entry(iter4));
 	}
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 	netlbl_af6list_foreach_safe(iter6, tmp6, &iface->addr6_list) {
 		netlbl_af6list_remove_entry(iter6);
 		kfree(netlbl_unlhsh_addr6_entry(iter6));
 	}
+#endif
 	kfree(iface);
 }
 
@@ -672,13 +676,17 @@ static int netlbl_unlhsh_remove_addr6(struct net *net,
 static void netlbl_unlhsh_condremove_iface(struct netlbl_unlhsh_iface *iface)
 {
 	struct netlbl_af4list *iter4;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 	struct netlbl_af6list *iter6;
+#endif
 
 	spin_lock(&netlbl_unlhsh_lock);
 	netlbl_af4list_foreach_rcu(iter4, &iface->addr4_list)
 		goto unlhsh_condremove_failure;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 	netlbl_af6list_foreach_rcu(iter6, &iface->addr6_list)
 		goto unlhsh_condremove_failure;
+#endif
 	iface->valid = 0;
 	if (iface->ifindex > 0)
 		list_del_rcu(&iface->list);
@@ -1256,10 +1264,13 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb,
 	u32 skip_addr4 = cb->args[2];
 	u32 skip_addr6 = cb->args[3];
 	u32 iter_bkt;
-	u32 iter_chain = 0, iter_addr4 = 0, iter_addr6 = 0;
+	u32 iter_chain = 0, iter_addr4 = 0;
 	struct netlbl_unlhsh_iface *iface;
 	struct netlbl_af4list *addr4;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 	struct netlbl_af6list *addr6;
+	u32 iter_addr6 = 0;
+#endif
 
 	cb_arg.nl_cb = cb;
 	cb_arg.skb = skb;
@@ -1268,7 +1279,11 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb,
 	rcu_read_lock();
 	for (iter_bkt = skip_bkt;
 	     iter_bkt < rcu_dereference(netlbl_unlhsh)->size;
-	     iter_bkt++, iter_chain = 0, iter_addr4 = 0, iter_addr6 = 0) {
+	     iter_bkt++, iter_chain = 0, iter_addr4 = 0
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+		     , iter_addr6 = 0
+#endif
+	     ) {
 		list_for_each_entry_rcu(iface,
 			        &rcu_dereference(netlbl_unlhsh)->tbl[iter_bkt],
 				list) {
@@ -1290,6 +1305,7 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb,
 					goto unlabel_staticlist_return;
 				}
 			}
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 			netlbl_af6list_foreach_rcu(addr6,
 						   &iface->addr6_list) {
 				if (iter_addr6++ < skip_addr6)
@@ -1305,6 +1321,7 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb,
 					goto unlabel_staticlist_return;
 				}
 			}
+#endif
 		}
 	}
 
@@ -1335,9 +1352,12 @@ static int netlbl_unlabel_staticlistdef(struct sk_buff *skb,
 	struct netlbl_unlhsh_iface *iface;
 	u32 skip_addr4 = cb->args[0];
 	u32 skip_addr6 = cb->args[1];
-	u32 iter_addr4 = 0, iter_addr6 = 0;
+	u32 iter_addr4 = 0;
 	struct netlbl_af4list *addr4;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+	u32 iter_addr6 = 0;
 	struct netlbl_af6list *addr6;
+#endif
 
 	cb_arg.nl_cb = cb;
 	cb_arg.skb = skb;
@@ -1360,6 +1380,7 @@ static int netlbl_unlabel_staticlistdef(struct sk_buff *skb,
 			goto unlabel_staticlistdef_return;
 		}
 	}
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 	netlbl_af6list_foreach_rcu(addr6, &iface->addr6_list) {
 		if (iter_addr6++ < skip_addr6)
 			continue;
@@ -1372,6 +1393,7 @@ static int netlbl_unlabel_staticlistdef(struct sk_buff *skb,
 			goto unlabel_staticlistdef_return;
 		}
 	}
+#endif
 
 unlabel_staticlistdef_return:
 	rcu_read_unlock();

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ