Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
6b697cc4
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
6b697cc4
编写于
6月 17, 2022
作者:
O
openharmony_ci
提交者:
Gitee
6月 17, 2022
浏览文件
操作
浏览文件
下载
差异文件
!3577 OH3.2主干分支memset_s函数加入判断
Merge pull request !3577 from 胡吉翔/liteOS_OH32Master_20220616_1
上级
e28ff4d9
32261dfe
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
40 addition
and
8 deletion
+40
-8
security_lite/permission_posix/capability/src/ActsCapabilityTest.cpp
...te/permission_posix/capability/src/ActsCapabilityTest.cpp
+40
-8
未找到文件。
security_lite/permission_posix/capability/src/ActsCapabilityTest.cpp
浏览文件 @
6b697cc4
...
@@ -55,13 +55,21 @@ static void CreateTxt()
...
@@ -55,13 +55,21 @@ static void CreateTxt()
static
int
CapsetOnlySETPCAP
(
int
num
)
static
int
CapsetOnlySETPCAP
(
int
num
)
{
{
struct
__user_cap_header_struct
capheader
;
struct
__user_cap_header_struct
capheader
;
(
void
)
memset_s
(
&
capheader
,
sizeof
(
struct
__user_cap_header_struct
),
errno_t
result
=
memset_s
(
&
capheader
,
sizeof
(
struct
__user_cap_header_struct
),
0
,
sizeof
(
struct
__user_cap_header_struct
));
0
,
sizeof
(
struct
__user_cap_header_struct
));
if
(
result
!=
EOK
)
{
LOG
(
"CapgetWithAllCap memset_s failed"
);
return
FALSE
;
};
capheader
.
version
=
_LINUX_CAPABILITY_VERSION_3
;
capheader
.
version
=
_LINUX_CAPABILITY_VERSION_3
;
capheader
.
pid
=
0
;
capheader
.
pid
=
0
;
struct
__user_cap_data_struct
capdata
[
CAP_NUM
];
struct
__user_cap_data_struct
capdata
[
CAP_NUM
];
(
void
)
memset_s
(
capdata
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
),
result
=
memset_s
(
capdata
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
),
0
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
));
0
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
));
if
(
result
!=
EOK
)
{
LOG
(
"CapgetWithAllCap memset_s failed"
);
return
FALSE
;
};
capdata
[
CAP_TO_INDEX
(
CAP_SETPCAP
)].
permitted
|=
CAP_TO_MASK
(
CAP_SETPCAP
);
capdata
[
CAP_TO_INDEX
(
CAP_SETPCAP
)].
permitted
|=
CAP_TO_MASK
(
CAP_SETPCAP
);
capdata
[
CAP_TO_INDEX
(
CAP_SETPCAP
)].
effective
|=
CAP_TO_MASK
(
CAP_SETPCAP
);
capdata
[
CAP_TO_INDEX
(
CAP_SETPCAP
)].
effective
|=
CAP_TO_MASK
(
CAP_SETPCAP
);
capdata
[
CAP_TO_INDEX
(
CAP_SETPCAP
)].
inheritable
|=
CAP_TO_MASK
(
CAP_SETPCAP
);
capdata
[
CAP_TO_INDEX
(
CAP_SETPCAP
)].
inheritable
|=
CAP_TO_MASK
(
CAP_SETPCAP
);
...
@@ -77,13 +85,21 @@ static int CapsetOnlySETPCAP(int num)
...
@@ -77,13 +85,21 @@ static int CapsetOnlySETPCAP(int num)
static
int
AddCapUnauthorized
(
int
num
)
static
int
AddCapUnauthorized
(
int
num
)
{
{
struct
__user_cap_header_struct
capheader
;
struct
__user_cap_header_struct
capheader
;
(
void
)
memset_s
(
&
capheader
,
sizeof
(
struct
__user_cap_header_struct
),
errno_t
result
=
memset_s
(
&
capheader
,
sizeof
(
struct
__user_cap_header_struct
),
0
,
sizeof
(
struct
__user_cap_header_struct
));
0
,
sizeof
(
struct
__user_cap_header_struct
));
if
(
result
!=
EOK
)
{
LOG
(
"CapgetWithAllCap memset_s failed"
);
return
FALSE
;
};
capheader
.
version
=
_LINUX_CAPABILITY_VERSION_3
;
capheader
.
version
=
_LINUX_CAPABILITY_VERSION_3
;
capheader
.
pid
=
0
;
capheader
.
pid
=
0
;
struct
__user_cap_data_struct
capdata
[
CAP_NUM
];
struct
__user_cap_data_struct
capdata
[
CAP_NUM
];
(
void
)
memset_s
(
capdata
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
),
result
=
memset_s
(
capdata
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
),
0
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
));
0
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
));
if
(
result
!=
EOK
)
{
LOG
(
"CapgetWithAllCap memset_s failed"
);
return
FALSE
;
};
capdata
[
0
].
permitted
=
LINUX_FULL_CAP
;
capdata
[
0
].
permitted
=
LINUX_FULL_CAP
;
capdata
[
0
].
effective
=
LINUX_FULL_CAP
;
capdata
[
0
].
effective
=
LINUX_FULL_CAP
;
capdata
[
0
].
inheritable
=
LINUX_FULL_CAP
;
capdata
[
0
].
inheritable
=
LINUX_FULL_CAP
;
...
@@ -783,13 +799,21 @@ HWTEST_F(CapabilityTestSuite, CapabilityTest1500, Reliability | MediumTest | Lev
...
@@ -783,13 +799,21 @@ HWTEST_F(CapabilityTestSuite, CapabilityTest1500, Reliability | MediumTest | Lev
if
(
pid
==
0
)
{
if
(
pid
==
0
)
{
int
exitCode
=
0
;
int
exitCode
=
0
;
struct
__user_cap_header_struct
capheader
=
{
0
};
struct
__user_cap_header_struct
capheader
=
{
0
};
(
void
)
memset_s
(
&
capheader
,
sizeof
(
struct
__user_cap_header_struct
),
errno_t
result
=
memset_s
(
&
capheader
,
sizeof
(
struct
__user_cap_header_struct
),
0
,
sizeof
(
struct
__user_cap_header_struct
));
0
,
sizeof
(
struct
__user_cap_header_struct
));
if
(
result
!=
EOK
)
{
LOG
(
"CapgetWithAllCap memset_s failed"
);
return
FALSE
;
};
capheader
.
version
=
_LINUX_CAPABILITY_VERSION_3
;
capheader
.
version
=
_LINUX_CAPABILITY_VERSION_3
;
capheader
.
pid
=
0
;
capheader
.
pid
=
0
;
struct
__user_cap_data_struct
capdata
[
CAP_NUM
]
=
{
{
0
},
{
0
}
};
struct
__user_cap_data_struct
capdata
[
CAP_NUM
]
=
{
{
0
},
{
0
}
};
(
void
)
memset_s
(
capdata
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
),
result
=
memset_s
(
capdata
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
),
LINUX_FULL_CAP
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
));
LINUX_FULL_CAP
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
));
if
(
result
!=
EOK
)
{
LOG
(
"CapgetWithAllCap memset_s failed"
);
return
FALSE
;
};
capdata
[
CAP_TO_INDEX
(
INVALID_CAP_TO_INDEX
)].
permitted
&=
~
CAP_TO_MASK
(
INVALID_CAP_TO_INDEX
);
capdata
[
CAP_TO_INDEX
(
INVALID_CAP_TO_INDEX
)].
permitted
&=
~
CAP_TO_MASK
(
INVALID_CAP_TO_INDEX
);
capdata
[
CAP_TO_INDEX
(
INVALID_CAP_TO_INDEX
)].
effective
&=
~
CAP_TO_MASK
(
INVALID_CAP_TO_INDEX
);
capdata
[
CAP_TO_INDEX
(
INVALID_CAP_TO_INDEX
)].
effective
&=
~
CAP_TO_MASK
(
INVALID_CAP_TO_INDEX
);
capdata
[
CAP_TO_INDEX
(
INVALID_CAP_TO_INDEX
)].
inheritable
&=
~
CAP_TO_MASK
(
INVALID_CAP_TO_INDEX
);
capdata
[
CAP_TO_INDEX
(
INVALID_CAP_TO_INDEX
)].
inheritable
&=
~
CAP_TO_MASK
(
INVALID_CAP_TO_INDEX
);
...
@@ -1110,12 +1134,20 @@ HWTEST_F(CapabilityTestSuite, CapabilityTest2300, Security | MediumTest | Level1
...
@@ -1110,12 +1134,20 @@ HWTEST_F(CapabilityTestSuite, CapabilityTest2300, Security | MediumTest | Level1
{
{
int
ret
;
int
ret
;
struct
__user_cap_header_struct
capheader
=
{
0
};
struct
__user_cap_header_struct
capheader
=
{
0
};
(
void
)
memset_s
(
&
capheader
,
sizeof
(
struct
__user_cap_header_struct
),
errno_t
result
=
memset_s
(
&
capheader
,
sizeof
(
struct
__user_cap_header_struct
),
0
,
sizeof
(
struct
__user_cap_header_struct
));
0
,
sizeof
(
struct
__user_cap_header_struct
));
if
(
result
!=
EOK
)
{
LOG
(
"CapgetWithAllCap memset_s failed"
);
return
FALSE
;
};
capheader
.
version
=
_LINUX_CAPABILITY_VERSION_3
;
capheader
.
version
=
_LINUX_CAPABILITY_VERSION_3
;
struct
__user_cap_data_struct
capdataget
[
CAP_NUM
]
=
{
{
0
},
{
0
}
};
struct
__user_cap_data_struct
capdataget
[
CAP_NUM
]
=
{
{
0
},
{
0
}
};
(
void
)
memset_s
(
capdataget
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
),
result
=
memset_s
(
capdataget
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
),
0
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
));
0
,
CAP_NUM
*
sizeof
(
struct
__user_cap_data_struct
));
if
(
result
!=
EOK
)
{
LOG
(
"CapgetWithAllCap memset_s failed"
);
return
FALSE
;
};
pid_t
pid
=
getpid
();
pid_t
pid
=
getpid
();
for
(
int
num
=
OTHER_PID
;
num
<=
pid
;
num
++
)
{
for
(
int
num
=
OTHER_PID
;
num
<=
pid
;
num
++
)
{
// Step 1: The current test process has all capabilities
// Step 1: The current test process has all capabilities
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录