| From 031756529dd80ed3098f393941e179d542087379 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 23 Jul 2019 18:00:15 +0800 |
| Subject: security: smack: Fix possible null-pointer dereferences in |
| smack_socket_sock_rcv_skb() |
| |
| From: Jia-Ju Bai <baijiaju1990@gmail.com> |
| |
| [ Upstream commit 3f4287e7d98a2954f20bf96c567fdffcd2b63eb9 ] |
| |
| In smack_socket_sock_rcv_skb(), there is an if statement |
| on line 3920 to check whether skb is NULL: |
| if (skb && skb->secmark != 0) |
| |
| This check indicates skb can be NULL in some cases. |
| |
| But on lines 3931 and 3932, skb is used: |
| ad.a.u.net->netif = skb->skb_iif; |
| ipv6_skb_to_auditdata(skb, &ad.a, NULL); |
| |
| Thus, possible null-pointer dereferences may occur when skb is NULL. |
| |
| To fix these possible bugs, an if statement is added to check skb. |
| |
| These bugs are found by a static analysis tool STCheck written by us. |
| |
| Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> |
| Signed-off-by: Casey Schaufler <casey@schaufler-ca.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| security/smack/smack_lsm.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c |
| index 9db7c80a74aa5..b76075dbd6fc8 100644 |
| --- a/security/smack/smack_lsm.c |
| +++ b/security/smack/smack_lsm.c |
| @@ -3986,6 +3986,8 @@ access_check: |
| skp = smack_ipv6host_label(&sadd); |
| if (skp == NULL) |
| skp = smack_net_ambient; |
| + if (skb == NULL) |
| + break; |
| #ifdef CONFIG_AUDIT |
| smk_ad_init_net(&ad, __func__, LSM_AUDIT_DATA_NET, &net); |
| ad.a.u.net->family = sk->sk_family; |
| -- |
| 2.20.1 |
| |