diff options
| author | Casey Schaufler <casey@schaufler-ca.com> | 2019-04-03 17:28:38 -0400 |
|---|---|---|
| committer | Casey Schaufler <casey@schaufler-ca.com> | 2019-04-03 17:28:38 -0400 |
| commit | f7450bc6e76860564f3842a41892f9b74313cc23 (patch) | |
| tree | 863eddb3f6473b23322512310b43f6725bc7bb7c | |
| parent | 4e328b08882a68649df2c2b76fd208b0d0b85503 (diff) | |
Smack: Fix IPv6 handling of 0 secmark
Handle the case where the skb for an IPv6 packet contains
a 0 in the secmark for a packet generated locally. This
can only happen for system packets, so allow the access.
Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
| -rw-r--r-- | security/smack/smack_lsm.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index bd45c9139d34..b9abcdb36a73 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c | |||
| @@ -3907,6 +3907,8 @@ access_check: | |||
| 3907 | #ifdef SMACK_IPV6_SECMARK_LABELING | 3907 | #ifdef SMACK_IPV6_SECMARK_LABELING |
| 3908 | if (skb && skb->secmark != 0) | 3908 | if (skb && skb->secmark != 0) |
| 3909 | skp = smack_from_secid(skb->secmark); | 3909 | skp = smack_from_secid(skb->secmark); |
| 3910 | else if (smk_ipv6_localhost(&sadd)) | ||
| 3911 | break; | ||
| 3910 | else | 3912 | else |
| 3911 | skp = smack_ipv6host_label(&sadd); | 3913 | skp = smack_ipv6host_label(&sadd); |
| 3912 | if (skp == NULL) | 3914 | if (skp == NULL) |
