diff options
author | Hwankyu Jhun <h.jhun@samsung.com> | 2019-01-17 13:41:27 +0900 |
---|---|---|
committer | Hwankyu Jhun <h.jhun@samsung.com> | 2019-01-17 13:41:27 +0900 |
commit | e059bb5362d51afb84eb4ceb9f9a0d109938d90e (patch) | |
tree | 496c575fb0f956d95b1ded047574a683ea75b8c5 | |
parent | b633656811ffd4000232be633a070ca761867ec4 (diff) | |
download | launchpad-e059bb5362d51afb84eb4ceb9f9a0d109938d90e.tar.gz launchpad-e059bb5362d51afb84eb4ceb9f9a0d109938d90e.tar.bz2 launchpad-e059bb5362d51afb84eb4ceb9f9a0d109938d90e.zip |
Prepare ID file
Before executing an application, the child process creates the ID file.
If's for Application Manager.
Change-Id: I4e561b80071c12fb786ca89cab8a968d25e159ff
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r-- | inc/launchpad_common.h | 1 | ||||
-rwxr-xr-x | src/launchpad.c | 4 | ||||
-rw-r--r-- | src/launchpad_common.c | 17 | ||||
-rw-r--r-- | src/launchpad_lib.c | 4 |
4 files changed, 26 insertions, 0 deletions
diff --git a/inc/launchpad_common.h b/inc/launchpad_common.h index 4662d3d..4776a44 100644 --- a/inc/launchpad_common.h +++ b/inc/launchpad_common.h @@ -129,6 +129,7 @@ int _wait_tep_mount(bundle *b); int _prepare_app_socket(void); int _enable_external_pkg(bundle *b, const char *pkgid, uid_t pkg_uid); int _verify_proc_caps(void); +int _prepare_id_file(void); #endif /* __LAUNCHPAD_COMMON_H__ */ diff --git a/src/launchpad.c b/src/launchpad.c index 3b2592a..f6d5301 100755 --- a/src/launchpad.c +++ b/src/launchpad.c @@ -1005,6 +1005,10 @@ static int __prepare_exec(const char *appid, const char *app_path, ret = _prepare_app_socket(); if (ret < 0) return PAD_ERR_FAILED; + + ret = _prepare_id_file(); + if (ret < 0) + return PAD_ERR_FAILED; } return 0; diff --git a/src/launchpad_common.c b/src/launchpad_common.c index da3ba04..21cb409 100644 --- a/src/launchpad_common.c +++ b/src/launchpad_common.c @@ -1353,3 +1353,20 @@ int _verify_proc_caps(void) return 0; } + +int _prepare_id_file(void) +{ + char path[PATH_MAX]; + int fd; + + snprintf(path, sizeof(path), "/run/aul/apps/%u/%d/%s", + getuid(), getpid(), getenv("AUL_APPID")); + fd = open(path, O_CREAT | O_WRONLY | O_TRUNC, 0600); + if (fd < 0) { + _E("Failed to create %s. errno(%d)", path, errno); + return -1; + } + close(fd); + + return 0; +} diff --git a/src/launchpad_lib.c b/src/launchpad_lib.c index dd7620a..4041141 100644 --- a/src/launchpad_lib.c +++ b/src/launchpad_lib.c @@ -145,6 +145,10 @@ static int __prepare_exec(const char *appid, const char *app_path, if (ret < 0) return -1; + ret = _prepare_id_file(); + if (ret < 0) + return -1; + return 0; } |