Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Startup Appspawn Lite
提交
8279dffc
S
Startup Appspawn Lite
项目概览
OpenHarmony
/
Startup Appspawn Lite
8 个月 前同步成功
通知
4
Star
43
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Startup Appspawn Lite
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8279dffc
编写于
9月 30, 2020
作者:
C
changcheng-weng
提交者:
Gitee
9月 30, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
share library support
上级
ba65620e
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
2 addition
and
49 deletion
+2
-49
include/appspawn_message.h
include/appspawn_message.h
+0
-1
src/appspawn_message.c
src/appspawn_message.c
+0
-15
src/appspawn_process.c
src/appspawn_process.c
+0
-31
src/appspawn_service.c
src/appspawn_service.c
+2
-2
未找到文件。
include/appspawn_message.h
浏览文件 @
8279dffc
...
...
@@ -23,7 +23,6 @@ extern "C" {
typedef
struct
{
char
*
bundleName
;
char
*
sharedLibPaths
;
char
*
identityID
;
int
uID
;
int
gID
;
...
...
src/appspawn_message.c
浏览文件 @
8279dffc
...
...
@@ -30,8 +30,6 @@ extern "C" {
static
const
size_t
MAX_BUNDLE_NAME_LEN
=
127
;
static
const
size_t
MIN_BUNDLE_NAME_LEN
=
7
;
static
const
size_t
MAX_SHARED_LIB_PATH_LEN
=
2048
;
static
const
size_t
MIN_SHARED_LIB_PATH_LEN
=
0
;
static
const
size_t
MAX_IDENTITY_ID_LEN
=
24
;
static
const
size_t
MIN_IDENTITY_ID_LEN
=
1
;
...
...
@@ -43,11 +41,6 @@ void FreeMessageSt(MessageSt* targetSt)
targetSt
->
bundleName
=
NULL
;
}
if
(
targetSt
->
sharedLibPaths
!=
NULL
)
{
free
(
targetSt
->
sharedLibPaths
);
targetSt
->
sharedLibPaths
=
NULL
;
}
if
(
targetSt
->
identityID
!=
NULL
)
{
free
(
targetSt
->
identityID
);
targetSt
->
identityID
=
NULL
;
...
...
@@ -117,14 +110,6 @@ int SplitMessage(const char* msg, unsigned int msgLen, MessageSt* msgSt)
return
ret
;
}
cJSON
*
libPathsItem
=
cJSON_GetObjectItem
(
rootJ
,
"sharedLibPaths"
);
ret
=
ReadStringItem
(
libPathsItem
,
&
(
msgSt
->
sharedLibPaths
),
MAX_SHARED_LIB_PATH_LEN
,
MIN_SHARED_LIB_PATH_LEN
);
if
(
ret
!=
EC_SUCCESS
)
{
FreeMessageSt
(
msgSt
);
cJSON_Delete
(
rootJ
);
return
ret
;
}
cJSON
*
identityIDItem
=
cJSON_GetObjectItem
(
rootJ
,
"identityID"
);
ret
=
ReadStringItem
(
identityIDItem
,
&
(
msgSt
->
identityID
),
MAX_IDENTITY_ID_LEN
,
MIN_IDENTITY_ID_LEN
);
if
(
ret
!=
EC_SUCCESS
)
{
...
...
src/appspawn_process.c
浏览文件 @
8279dffc
...
...
@@ -88,41 +88,11 @@ static int SetPerms(uid_t uID, gid_t gID)
return
0
;
}
static
char
*
GetEnvStrs
(
const
MessageSt
*
msgSt
)
{
size_t
totalLen
=
strlen
(
ENV_TITLE
)
+
strlen
(
msgSt
->
sharedLibPaths
);
char
*
envStr
=
(
char
*
)
malloc
(
totalLen
+
1
);
if
(
envStr
==
NULL
)
{
HILOG_ERROR
(
HILOG_MODULE_HIVIEW
,
"[appspawn] malloc for env failed! len %{public}u."
,
totalLen
);
return
NULL
;
}
if
(
memset_s
(
envStr
,
totalLen
+
1
,
'\0'
,
totalLen
+
1
)
!=
EOK
)
{
HILOG_ERROR
(
HILOG_MODULE_HIVIEW
,
"[appspawn] memset_s for env failed."
);
free
(
envStr
);
return
NULL
;
}
if
(
sprintf_s
(
envStr
,
totalLen
+
1
,
"%s%s"
,
ENV_TITLE
,
msgSt
->
sharedLibPaths
)
<=
0
)
{
HILOG_ERROR
(
HILOG_MODULE_HIVIEW
,
"[appspawn] sprintf_s for env failed. libPath %{public}s"
,
\
msgSt
->
sharedLibPaths
);
free
(
envStr
);
return
NULL
;
}
return
envStr
;
}
pid_t
CreateProcess
(
const
MessageSt
*
msgSt
)
{
char
*
envStr
=
GetEnvStrs
(
msgSt
);
if
(
envStr
==
NULL
)
{
return
-
1
;
}
pid_t
newPID
=
fork
();
if
(
newPID
<
0
)
{
HILOG_ERROR
(
HILOG_MODULE_HIVIEW
,
"[appspawn] create process, fork failed! err %{public}d."
,
errno
);
free
(
envStr
);
return
-
1
;
}
...
...
@@ -144,7 +114,6 @@ pid_t CreateProcess(const MessageSt* msgSt)
exit
(
0x7f
);
// 0x7f: user specified
}
free
(
envStr
);
return
newPID
;
}
...
...
src/appspawn_service.c
浏览文件 @
8279dffc
...
...
@@ -119,8 +119,8 @@ static int Invoke(IServerProxy* iProxy, int funcId, void* origin, IpcIo* req, Ip
return
EC_FAILURE
;
}
HILOG_INFO
(
HILOG_MODULE_HIVIEW
,
"[appspawn] msg<%{public}s,%{public}s,%{public}
s,%{public}
d,%{public}d>"
,
\
msgSt
.
bundleName
,
msgSt
.
sharedLibPaths
,
msgSt
.
identityID
,
msgSt
.
uID
,
msgSt
.
gID
);
HILOG_INFO
(
HILOG_MODULE_HIVIEW
,
"[appspawn] msg<%{public}s,%{public}s,%{public}d,%{public}d>"
,
\
msgSt
.
bundleName
,
msgSt
.
identityID
,
msgSt
.
uID
,
msgSt
.
gID
);
pid_t
newPid
=
CreateProcess
(
&
msgSt
);
FreeMessageSt
(
&
msgSt
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录