Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Startup Appspawn Lite
提交
a0a535a0
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 搜索 >>
提交
a0a535a0
编写于
9月 14, 2020
作者:
张
张阿龙
提交者:
openharmony_ci
9月 14, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
!1 【轻量级 PR】:Modify the identityID field type to string
Merge pull request !1 from 张阿龙/N/A
上级
2c1ba2da
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
19 addition
and
9 deletion
+19
-9
include/appspawn_message.h
include/appspawn_message.h
+1
-1
src/appspawn_message.c
src/appspawn_message.c
+15
-5
src/appspawn_process.c
src/appspawn_process.c
+2
-2
src/appspawn_service.c
src/appspawn_service.c
+1
-1
未找到文件。
include/appspawn_message.h
浏览文件 @
a0a535a0
...
...
@@ -24,7 +24,7 @@ extern "C" {
typedef
struct
{
char
*
bundleName
;
char
*
sharedLibPaths
;
unsigned
long
long
identityID
;
char
*
identityID
;
int
uID
;
int
gID
;
}
MessageSt
;
...
...
src/appspawn_message.c
浏览文件 @
a0a535a0
...
...
@@ -32,6 +32,8 @@ 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
;
void
FreeMessageSt
(
MessageSt
*
targetSt
)
{
...
...
@@ -46,7 +48,11 @@ void FreeMessageSt(MessageSt* targetSt)
targetSt
->
sharedLibPaths
=
NULL
;
}
targetSt
->
identityID
=
0
;
if
(
targetSt
->
identityID
!=
NULL
)
{
free
(
targetSt
->
identityID
);
targetSt
->
identityID
=
NULL
;
}
targetSt
->
uID
=
-
1
;
targetSt
->
gID
=
-
1
;
}
...
...
@@ -120,16 +126,20 @@ int SplitMessage(const char* msg, unsigned int msgLen, MessageSt* msgSt)
}
cJSON
*
identityIDItem
=
cJSON_GetObjectItem
(
rootJ
,
"identityID"
);
ret
=
ReadStringItem
(
identityIDItem
,
&
(
msgSt
->
identityID
),
MAX_IDENTITY_ID_LEN
,
MIN_IDENTITY_ID_LEN
);
if
(
ret
!=
EC_SUCCESS
)
{
FreeMessageSt
(
msgSt
);
cJSON_Delete
(
rootJ
);
return
ret
;
}
cJSON
*
uIDItem
=
cJSON_GetObjectItem
(
rootJ
,
"uID"
);
cJSON
*
gIDItem
=
cJSON_GetObjectItem
(
rootJ
,
"gID"
);
msgSt
->
identityID
=
(
unsigned
long
long
)
ReadNumberItem
(
identityIDItem
);
msgSt
->
uID
=
(
int
)
ReadNumberItem
(
uIDItem
);
msgSt
->
gID
=
(
int
)
ReadNumberItem
(
gIDItem
);
cJSON_Delete
(
rootJ
);
if
(
msgSt
->
identityID
==
0
||
msgSt
->
uID
<=
0
||
msgSt
->
gID
<=
0
||
msgSt
->
identityID
==
ULLONG_MAX
||
msgSt
->
uID
==
INT_MAX
||
msgSt
->
gID
==
INT_MAX
)
{
if
(
msgSt
->
uID
<=
0
||
msgSt
->
gID
<=
0
||
msgSt
->
uID
==
INT_MAX
||
msgSt
->
gID
==
INT_MAX
)
{
FreeMessageSt
(
msgSt
);
return
EC_PROTOCOL
;
}
...
...
src/appspawn_process.c
浏览文件 @
a0a535a0
...
...
@@ -126,9 +126,9 @@ pid_t CreateProcess(const MessageSt* msgSt)
return
-
1
;
}
if
(
sprintf_s
(
identityIDStr
,
MAX_IDENTITY_ID_LENGTH
,
"%
llu
"
,
msgSt
->
identityID
)
<=
0
||
if
(
sprintf_s
(
identityIDStr
,
MAX_IDENTITY_ID_LENGTH
,
"%
s
"
,
msgSt
->
identityID
)
<=
0
||
sprintf_s
(
processNameStr
,
MAX_PROCESS_NAME_LENGTH
,
"%s"
,
msgSt
->
bundleName
)
<=
0
)
{
HILOG_ERROR
(
HILOG_MODULE_HIVIEW
,
"[appspawn] sprintf_s failed. id %{public}
llu
, name %{public}s."
,
\
HILOG_ERROR
(
HILOG_MODULE_HIVIEW
,
"[appspawn] sprintf_s failed. id %{public}
s
, name %{public}s."
,
\
msgSt
->
identityID
,
msgSt
->
bundleName
);
return
-
1
;
}
...
...
src/appspawn_service.c
浏览文件 @
a0a535a0
...
...
@@ -119,7 +119,7 @@ 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}
llu
,%{public}d,%{public}d>"
,
\
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
);
pid_t
newPid
=
CreateProcess
(
&
msgSt
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录