Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
df6b4e66
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
14
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
df6b4e66
编写于
7月 30, 2018
作者:
J
James Morris
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'smack-for-4.19-a' of
https://github.com/cschaufler/next-smack
into next-smack
From Casey Schaufler.
上级
87ea5843
d66a8acb
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
16 addition
and
6 deletion
+16
-6
security/smack/smack_lsm.c
security/smack/smack_lsm.c
+16
-6
未找到文件。
security/smack/smack_lsm.c
浏览文件 @
df6b4e66
...
...
@@ -28,6 +28,7 @@
#include <linux/tcp.h>
#include <linux/udp.h>
#include <linux/dccp.h>
#include <linux/icmpv6.h>
#include <linux/slab.h>
#include <linux/mutex.h>
#include <linux/pipe_fs_i.h>
...
...
@@ -3895,6 +3896,7 @@ static int smk_skb_to_addr_ipv6(struct sk_buff *skb, struct sockaddr_in6 *sip)
sip
->
sin6_port
=
th
->
source
;
break
;
case
IPPROTO_UDP
:
case
IPPROTO_UDPLITE
:
uh
=
skb_header_pointer
(
skb
,
offset
,
sizeof
(
_udph
),
&
_udph
);
if
(
uh
!=
NULL
)
sip
->
sin6_port
=
uh
->
source
;
...
...
@@ -3923,15 +3925,19 @@ static int smack_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
struct
smack_known
*
skp
=
NULL
;
int
rc
=
0
;
struct
smk_audit_info
ad
;
u16
family
=
sk
->
sk_family
;
#ifdef CONFIG_AUDIT
struct
lsm_network_audit
net
;
#endif
#if IS_ENABLED(CONFIG_IPV6)
struct
sockaddr_in6
sadd
;
int
proto
;
if
(
family
==
PF_INET6
&&
skb
->
protocol
==
htons
(
ETH_P_IP
))
family
=
PF_INET
;
#endif
/* CONFIG_IPV6 */
switch
(
sk
->
sk_
family
)
{
switch
(
family
)
{
case
PF_INET
:
#ifdef CONFIG_SECURITY_SMACK_NETFILTER
/*
...
...
@@ -3949,7 +3955,7 @@ static int smack_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
*/
netlbl_secattr_init
(
&
secattr
);
rc
=
netlbl_skbuff_getattr
(
skb
,
sk
->
sk_
family
,
&
secattr
);
rc
=
netlbl_skbuff_getattr
(
skb
,
family
,
&
secattr
);
if
(
rc
==
0
)
skp
=
smack_from_secattr
(
&
secattr
,
ssp
);
else
...
...
@@ -3962,7 +3968,7 @@ static int smack_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
#endif
#ifdef CONFIG_AUDIT
smk_ad_init_net
(
&
ad
,
__func__
,
LSM_AUDIT_DATA_NET
,
&
net
);
ad
.
a
.
u
.
net
->
family
=
sk
->
sk_
family
;
ad
.
a
.
u
.
net
->
family
=
family
;
ad
.
a
.
u
.
net
->
netif
=
skb
->
skb_iif
;
ipv4_skb_to_auditdata
(
skb
,
&
ad
.
a
,
NULL
);
#endif
...
...
@@ -3976,12 +3982,13 @@ static int smack_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
rc
=
smk_bu_note
(
"IPv4 delivery"
,
skp
,
ssp
->
smk_in
,
MAY_WRITE
,
rc
);
if
(
rc
!=
0
)
netlbl_skbuff_err
(
skb
,
sk
->
sk_
family
,
rc
,
0
);
netlbl_skbuff_err
(
skb
,
family
,
rc
,
0
);
break
;
#if IS_ENABLED(CONFIG_IPV6)
case
PF_INET6
:
proto
=
smk_skb_to_addr_ipv6
(
skb
,
&
sadd
);
if
(
proto
!=
IPPROTO_UDP
&&
proto
!=
IPPROTO_TCP
)
if
(
proto
!=
IPPROTO_UDP
&&
proto
!=
IPPROTO_UDPLITE
&&
proto
!=
IPPROTO_TCP
&&
proto
!=
IPPROTO_DCCP
)
break
;
#ifdef SMACK_IPV6_SECMARK_LABELING
if
(
skb
&&
skb
->
secmark
!=
0
)
...
...
@@ -3992,7 +3999,7 @@ static int smack_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
skp
=
smack_net_ambient
;
#ifdef CONFIG_AUDIT
smk_ad_init_net
(
&
ad
,
__func__
,
LSM_AUDIT_DATA_NET
,
&
net
);
ad
.
a
.
u
.
net
->
family
=
sk
->
sk_
family
;
ad
.
a
.
u
.
net
->
family
=
family
;
ad
.
a
.
u
.
net
->
netif
=
skb
->
skb_iif
;
ipv6_skb_to_auditdata
(
skb
,
&
ad
.
a
,
NULL
);
#endif
/* CONFIG_AUDIT */
...
...
@@ -4003,6 +4010,9 @@ static int smack_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
#ifdef SMACK_IPV6_PORT_LABELING
rc
=
smk_ipv6_port_check
(
sk
,
&
sadd
,
SMK_RECEIVING
);
#endif
/* SMACK_IPV6_PORT_LABELING */
if
(
rc
!=
0
)
icmpv6_send
(
skb
,
ICMPV6_DEST_UNREACH
,
ICMPV6_ADM_PROHIBITED
,
0
);
break
;
#endif
/* CONFIG_IPV6 */
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录