Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Startup Init Lite
提交
c25bc972
S
Startup Init Lite
项目概览
OpenHarmony
/
Startup Init Lite
9 个月 前同步成功
通知
3
Star
37
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Startup Init Lite
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
c25bc972
编写于
8月 08, 2023
作者:
C
cheng_jinsong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support appspawn fork child
Signed-off-by:
N
cheng_jinsong
<
chengjinsong2@huawei.com
>
上级
5d22bf0b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
23 addition
and
12 deletion
+23
-12
services/param/linux/param_request.c
services/param/linux/param_request.c
+21
-0
services/param/manager/param_manager.c
services/param/manager/param_manager.c
+0
-12
test/unittest/param/param_unittest.cpp
test/unittest/param/param_unittest.cpp
+2
-0
未找到文件。
services/param/linux/param_request.c
浏览文件 @
c25bc972
...
...
@@ -273,3 +273,24 @@ int WatchParamCheck(const char *keyprefix)
PARAM_CHECK
(
ret
==
0
,
return
ret
,
"Forbid to watcher parameter %s"
,
keyprefix
);
return
0
;
}
void
ResetParamSecurityLabel
(
void
)
{
#ifdef RESET_CHILD_FOR_VERIFY
ParamWorkSpace
*
paramSpace
=
GetParamWorkSpace
();
PARAM_CHECK
(
paramSpace
!=
NULL
,
return
,
"Invalid paramSpace"
);
#if !(defined __LITEOS_A__ || defined __LITEOS_M__)
paramSpace
->
securityLabel
.
cred
.
pid
=
getpid
();
paramSpace
->
securityLabel
.
cred
.
uid
=
geteuid
();
paramSpace
->
securityLabel
.
cred
.
gid
=
getegid
();
paramSpace
->
flags
|=
WORKSPACE_FLAGS_NEED_ACCESS
;
#endif
#endif
PARAM_LOGI
(
"ResetParamSecurityLabel g_clientFd: %d "
,
g_clientFd
);
pthread_mutex_lock
(
&
g_clientMutex
);
if
(
g_clientFd
!=
INVALID_SOCKET
)
{
close
(
g_clientFd
);
g_clientFd
=
INVALID_SOCKET
;
}
pthread_mutex_unlock
(
&
g_clientMutex
);
}
services/param/manager/param_manager.c
浏览文件 @
c25bc972
...
...
@@ -623,18 +623,6 @@ INIT_LOCAL_API int CheckParamName(const char *name, int info)
return
0
;
}
void
ResetParamSecurityLabel
(
void
)
{
ParamWorkSpace
*
paramSpace
=
GetParamWorkSpace
();
PARAM_CHECK
(
paramSpace
!=
NULL
,
return
,
"Invalid paramSpace"
);
#if !(defined __LITEOS_A__ || defined __LITEOS_M__)
paramSpace
->
securityLabel
.
cred
.
pid
=
getpid
();
paramSpace
->
securityLabel
.
cred
.
uid
=
geteuid
();
paramSpace
->
securityLabel
.
cred
.
gid
=
getegid
();
paramSpace
->
flags
|=
WORKSPACE_FLAGS_NEED_ACCESS
;
#endif
}
static
int
CheckParamPermission_
(
WorkSpace
**
workspace
,
ParamTrieNode
**
node
,
const
ParamSecurityLabel
*
srcLabel
,
const
char
*
name
,
uint32_t
mode
)
{
...
...
test/unittest/param/param_unittest.cpp
浏览文件 @
c25bc972
...
...
@@ -158,7 +158,9 @@ public:
// 添加一个label,完全匹配
int
TestAddSecurityLabel4
()
{
#if !(defined __LITEOS_A__ || defined __LITEOS_M__)
ResetParamSecurityLabel
();
#endif
GetParamSecurityLabel
()
->
cred
.
gid
=
9999
;
// 9999 test gid
const
char
*
name
=
"label4.test.aaa.bbb.ccc.dddd.eee"
;
const
char
*
value
=
"2001"
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录