mirror of
https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
synced 2025-10-29 20:22:52 +10:00
smack: dont compile ipv6 code unless ipv6 is configured
[ Upstream commitbfcf4004bc] I want to be sure that ipv6-specific code is not compiled in kernel binaries if ipv6 is not configured. [1] was getting rid of "unused variable" warning, but, with that, it also mandated compilation of a handful ipv6- specific functions in ipv4-only kernel configurations: smk_ipv6_localhost, smack_ipv6host_label, smk_ipv6_check. Their compiled bodies are likely to be removed by compiler from the resulting binary, but, to be on the safe side, I remove them from the compiler view. [1] Fixes:00720f0e7f("smack: avoid unused 'sip' variable warning") Signed-off-by: Konstantin Andreev <andreev@swemel.ru> Signed-off-by: Casey Schaufler <casey@schaufler-ca.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
e4b3585ad9
commit
f7a1e1c2d6
@ -152,6 +152,7 @@ struct smk_net4addr {
|
||||
struct smack_known *smk_label; /* label */
|
||||
};
|
||||
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
/*
|
||||
* An entry in the table identifying IPv6 hosts.
|
||||
*/
|
||||
@ -162,7 +163,9 @@ struct smk_net6addr {
|
||||
int smk_masks; /* mask size */
|
||||
struct smack_known *smk_label; /* label */
|
||||
};
|
||||
#endif /* CONFIG_IPV6 */
|
||||
|
||||
#ifdef SMACK_IPV6_PORT_LABELING
|
||||
/*
|
||||
* An entry in the table identifying ports.
|
||||
*/
|
||||
@ -175,6 +178,7 @@ struct smk_port_label {
|
||||
short smk_sock_type; /* Socket type */
|
||||
short smk_can_reuse;
|
||||
};
|
||||
#endif /* SMACK_IPV6_PORT_LABELING */
|
||||
|
||||
struct smack_known_list_elem {
|
||||
struct list_head list;
|
||||
@ -314,7 +318,9 @@ extern struct smack_known smack_known_web;
|
||||
extern struct mutex smack_known_lock;
|
||||
extern struct list_head smack_known_list;
|
||||
extern struct list_head smk_net4addr_list;
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
extern struct list_head smk_net6addr_list;
|
||||
#endif /* CONFIG_IPV6 */
|
||||
|
||||
extern struct mutex smack_onlycap_lock;
|
||||
extern struct list_head smack_onlycap_list;
|
||||
|
||||
@ -2476,6 +2476,7 @@ static struct smack_known *smack_ipv4host_label(struct sockaddr_in *sip)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
/*
|
||||
* smk_ipv6_localhost - Check for local ipv6 host address
|
||||
* @sip: the address
|
||||
@ -2543,6 +2544,7 @@ static struct smack_known *smack_ipv6host_label(struct sockaddr_in6 *sip)
|
||||
|
||||
return NULL;
|
||||
}
|
||||
#endif /* CONFIG_IPV6 */
|
||||
|
||||
/**
|
||||
* smack_netlbl_add - Set the secattr on a socket
|
||||
@ -2646,6 +2648,7 @@ static int smk_ipv4_check(struct sock *sk, struct sockaddr_in *sap)
|
||||
return rc;
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
/**
|
||||
* smk_ipv6_check - check Smack access
|
||||
* @subject: subject Smack label
|
||||
@ -2678,6 +2681,7 @@ static int smk_ipv6_check(struct smack_known *subject,
|
||||
rc = smk_bu_note("IPv6 check", subject, object, MAY_WRITE, rc);
|
||||
return rc;
|
||||
}
|
||||
#endif /* CONFIG_IPV6 */
|
||||
|
||||
#ifdef SMACK_IPV6_PORT_LABELING
|
||||
/**
|
||||
@ -3010,7 +3014,9 @@ static int smack_socket_connect(struct socket *sock, struct sockaddr *sap,
|
||||
return 0;
|
||||
if (addrlen < offsetofend(struct sockaddr, sa_family))
|
||||
return 0;
|
||||
if (IS_ENABLED(CONFIG_IPV6) && sap->sa_family == AF_INET6) {
|
||||
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
if (sap->sa_family == AF_INET6) {
|
||||
struct sockaddr_in6 *sip = (struct sockaddr_in6 *)sap;
|
||||
struct smack_known *rsp = NULL;
|
||||
|
||||
@ -3030,6 +3036,8 @@ static int smack_socket_connect(struct socket *sock, struct sockaddr *sap,
|
||||
|
||||
return rc;
|
||||
}
|
||||
#endif /* CONFIG_IPV6 */
|
||||
|
||||
if (sap->sa_family != AF_INET || addrlen < sizeof(struct sockaddr_in))
|
||||
return 0;
|
||||
rc = smk_ipv4_check(sock->sk, (struct sockaddr_in *)sap);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user