Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
da7d8e65
K
Kernel
项目概览
openeuler
/
Kernel
接近 2 年 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
da7d8e65
编写于
9月 07, 2022
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'netlink-be-policy'
Signed-off-by:
N
David S. Miller
<
davem@davemloft.net
>
上级
98ba8108
e7af210e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
39 addition
and
7 deletion
+39
-7
include/net/netlink.h
include/net/netlink.h
+9
-0
lib/nlattr.c
lib/nlattr.c
+27
-4
net/netfilter/nft_payload.c
net/netfilter/nft_payload.c
+3
-3
未找到文件。
include/net/netlink.h
浏览文件 @
da7d8e65
...
...
@@ -325,6 +325,7 @@ struct nla_policy {
struct
netlink_range_validation_signed
*
range_signed
;
struct
{
s16
min
,
max
;
u8
network_byte_order
:
1
;
};
int
(
*
validate
)(
const
struct
nlattr
*
attr
,
struct
netlink_ext_ack
*
extack
);
...
...
@@ -418,6 +419,14 @@ struct nla_policy {
.type = NLA_ENSURE_INT_OR_BINARY_TYPE(tp), \
.validation_type = NLA_VALIDATE_MAX, \
.max = _max, \
.network_byte_order = 0, \
}
#define NLA_POLICY_MAX_BE(tp, _max) { \
.type = NLA_ENSURE_UINT_TYPE(tp), \
.validation_type = NLA_VALIDATE_MAX, \
.max = _max, \
.network_byte_order = 1, \
}
#define NLA_POLICY_MASK(tp, _mask) { \
...
...
lib/nlattr.c
浏览文件 @
da7d8e65
...
...
@@ -159,6 +159,31 @@ void nla_get_range_unsigned(const struct nla_policy *pt,
}
}
static
u64
nla_get_attr_bo
(
const
struct
nla_policy
*
pt
,
const
struct
nlattr
*
nla
)
{
switch
(
pt
->
type
)
{
case
NLA_U16
:
if
(
pt
->
network_byte_order
)
return
ntohs
(
nla_get_be16
(
nla
));
return
nla_get_u16
(
nla
);
case
NLA_U32
:
if
(
pt
->
network_byte_order
)
return
ntohl
(
nla_get_be32
(
nla
));
return
nla_get_u32
(
nla
);
case
NLA_U64
:
if
(
pt
->
network_byte_order
)
return
be64_to_cpu
(
nla_get_be64
(
nla
));
return
nla_get_u64
(
nla
);
}
WARN_ON_ONCE
(
1
);
return
0
;
}
static
int
nla_validate_range_unsigned
(
const
struct
nla_policy
*
pt
,
const
struct
nlattr
*
nla
,
struct
netlink_ext_ack
*
extack
,
...
...
@@ -172,12 +197,10 @@ static int nla_validate_range_unsigned(const struct nla_policy *pt,
value
=
nla_get_u8
(
nla
);
break
;
case
NLA_U16
:
value
=
nla_get_u16
(
nla
);
break
;
case
NLA_U32
:
value
=
nla_get_u32
(
nla
);
break
;
case
NLA_U64
:
value
=
nla_get_attr_bo
(
pt
,
nla
);
break
;
case
NLA_MSECS
:
value
=
nla_get_u64
(
nla
);
break
;
...
...
net/netfilter/nft_payload.c
浏览文件 @
da7d8e65
...
...
@@ -173,10 +173,10 @@ static const struct nla_policy nft_payload_policy[NFTA_PAYLOAD_MAX + 1] = {
[
NFTA_PAYLOAD_SREG
]
=
{
.
type
=
NLA_U32
},
[
NFTA_PAYLOAD_DREG
]
=
{
.
type
=
NLA_U32
},
[
NFTA_PAYLOAD_BASE
]
=
{
.
type
=
NLA_U32
},
[
NFTA_PAYLOAD_OFFSET
]
=
{
.
type
=
NLA_U32
}
,
[
NFTA_PAYLOAD_LEN
]
=
{
.
type
=
NLA_U32
}
,
[
NFTA_PAYLOAD_OFFSET
]
=
NLA_POLICY_MAX_BE
(
NLA_U32
,
255
)
,
[
NFTA_PAYLOAD_LEN
]
=
NLA_POLICY_MAX_BE
(
NLA_U32
,
255
)
,
[
NFTA_PAYLOAD_CSUM_TYPE
]
=
{
.
type
=
NLA_U32
},
[
NFTA_PAYLOAD_CSUM_OFFSET
]
=
{
.
type
=
NLA_U32
}
,
[
NFTA_PAYLOAD_CSUM_OFFSET
]
=
NLA_POLICY_MAX_BE
(
NLA_U32
,
255
)
,
[
NFTA_PAYLOAD_CSUM_FLAGS
]
=
{
.
type
=
NLA_U32
},
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录