Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56628b1d authored by Pavel Emelyanov's avatar Pavel Emelyanov Committed by David S. Miller
Browse files

[NETLABEL]: Don't produce unused variables when IPv6 is off.



Some code declares variables on the stack, but uses them
under #ifdef CONFIG_IPV6, so thay become unused when ipv6
is off. Fortunately, they are used in a switch's case
branches, so the fix is rather simple.

Is it OK from coding style POV to add braces inside "cases",
or should I better avoid such style and rework the patch?

Signed-off-by: default avatarPavel Emelyanov <xemul@openvz.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 94de7feb
Loading
Loading
Loading
Loading
+18 −10
Original line number Original line Diff line number Diff line
@@ -617,8 +617,6 @@ static int netlbl_unlhsh_add(struct net *net,
	int ifindex;
	int ifindex;
	struct net_device *dev;
	struct net_device *dev;
	struct netlbl_unlhsh_iface *iface;
	struct netlbl_unlhsh_iface *iface;
	struct in_addr *addr4, *mask4;
	struct in6_addr *addr6, *mask6;
	struct audit_buffer *audit_buf = NULL;
	struct audit_buffer *audit_buf = NULL;
	char *secctx = NULL;
	char *secctx = NULL;
	u32 secctx_len;
	u32 secctx_len;
@@ -651,7 +649,9 @@ static int netlbl_unlhsh_add(struct net *net,
	audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCADD,
	audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCADD,
					      audit_info);
					      audit_info);
	switch (addr_len) {
	switch (addr_len) {
	case sizeof(struct in_addr):
	case sizeof(struct in_addr): {
		struct in_addr *addr4, *mask4;

		addr4 = (struct in_addr *)addr;
		addr4 = (struct in_addr *)addr;
		mask4 = (struct in_addr *)mask;
		mask4 = (struct in_addr *)mask;
		ret_val = netlbl_unlhsh_add_addr4(iface, addr4, mask4, secid);
		ret_val = netlbl_unlhsh_add_addr4(iface, addr4, mask4, secid);
@@ -661,8 +661,11 @@ static int netlbl_unlhsh_add(struct net *net,
						   addr4->s_addr,
						   addr4->s_addr,
						   mask4->s_addr);
						   mask4->s_addr);
		break;
		break;
	}
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
	case sizeof(struct in6_addr):
	case sizeof(struct in6_addr): {
		struct in6_addr *addr6, *mask6;

		addr6 = (struct in6_addr *)addr;
		addr6 = (struct in6_addr *)addr;
		mask6 = (struct in6_addr *)mask;
		mask6 = (struct in6_addr *)mask;
		ret_val = netlbl_unlhsh_add_addr6(iface, addr6, mask6, secid);
		ret_val = netlbl_unlhsh_add_addr6(iface, addr6, mask6, secid);
@@ -671,6 +674,7 @@ static int netlbl_unlhsh_add(struct net *net,
						   dev_name,
						   dev_name,
						   addr6, mask6);
						   addr6, mask6);
		break;
		break;
	}
#endif /* IPv6 */
#endif /* IPv6 */
	default:
	default:
		ret_val = -EINVAL;
		ret_val = -EINVAL;
@@ -1741,10 +1745,6 @@ int netlbl_unlabel_getattr(const struct sk_buff *skb,
			   u16 family,
			   u16 family,
			   struct netlbl_lsm_secattr *secattr)
			   struct netlbl_lsm_secattr *secattr)
{
{
	struct iphdr *hdr4;
	struct ipv6hdr *hdr6;
	struct netlbl_unlhsh_addr4 *addr4;
	struct netlbl_unlhsh_addr6 *addr6;
	struct netlbl_unlhsh_iface *iface;
	struct netlbl_unlhsh_iface *iface;


	rcu_read_lock();
	rcu_read_lock();
@@ -1752,21 +1752,29 @@ int netlbl_unlabel_getattr(const struct sk_buff *skb,
	if (iface == NULL)
	if (iface == NULL)
		goto unlabel_getattr_nolabel;
		goto unlabel_getattr_nolabel;
	switch (family) {
	switch (family) {
	case PF_INET:
	case PF_INET: {
		struct iphdr *hdr4;
		struct netlbl_unlhsh_addr4 *addr4;

		hdr4 = ip_hdr(skb);
		hdr4 = ip_hdr(skb);
		addr4 = netlbl_unlhsh_search_addr4(hdr4->saddr, iface);
		addr4 = netlbl_unlhsh_search_addr4(hdr4->saddr, iface);
		if (addr4 == NULL)
		if (addr4 == NULL)
			goto unlabel_getattr_nolabel;
			goto unlabel_getattr_nolabel;
		secattr->attr.secid = addr4->secid;
		secattr->attr.secid = addr4->secid;
		break;
		break;
	}
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
	case PF_INET6:
	case PF_INET6: {
		struct ipv6hdr *hdr6;
		struct netlbl_unlhsh_addr6 *addr6;

		hdr6 = ipv6_hdr(skb);
		hdr6 = ipv6_hdr(skb);
		addr6 = netlbl_unlhsh_search_addr6(&hdr6->saddr, iface);
		addr6 = netlbl_unlhsh_search_addr6(&hdr6->saddr, iface);
		if (addr6 == NULL)
		if (addr6 == NULL)
			goto unlabel_getattr_nolabel;
			goto unlabel_getattr_nolabel;
		secattr->attr.secid = addr6->secid;
		secattr->attr.secid = addr6->secid;
		break;
		break;
	}
#endif /* IPv6 */
#endif /* IPv6 */
	default:
	default:
		goto unlabel_getattr_nolabel;
		goto unlabel_getattr_nolabel;