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

[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
...@@ -617,8 +617,6 @@ static int netlbl_unlhsh_add(struct net *net, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment