summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHwankyu Jhun <h.jhun@samsung.com>2020-05-18 14:06:53 +0900
committerHwankyu Jhun <h.jhun@samsung.com>2020-05-18 14:06:53 +0900
commit499f8710606badf7dc620dc1a76d480b93859bc4 (patch)
tree50ce2ba0b5667c811f2c336424aabf6959ced47d
parent191ea766aa6662f24f28a810746d524ffe1b9e88 (diff)
parent6d04a1ac515e6efd3db6f0fcf91d4cdd56826730 (diff)
downloadlaunchpad-499f8710606badf7dc620dc1a76d480b93859bc4.tar.gz
launchpad-499f8710606badf7dc620dc1a76d480b93859bc4.tar.bz2
launchpad-499f8710606badf7dc620dc1a76d480b93859bc4.zip
Change-Id: I239e562e26caf52731f0df0c6a78c3b7c4d50aba
-rw-r--r--packaging/launchpad.spec2
-rw-r--r--src/hydra/src/launchpad_hydra.c26
2 files changed, 11 insertions, 17 deletions
diff --git a/packaging/launchpad.spec b/packaging/launchpad.spec
index 895aa65..e39fa09 100644
--- a/packaging/launchpad.spec
+++ b/packaging/launchpad.spec
@@ -1,6 +1,6 @@
Name: launchpad
Summary: Launchpad for launching applications
-Version: 0.14.4
+Version: 0.14.5
Release: 1
Group: Application Framework/Daemons
License: Apache-2.0
diff --git a/src/hydra/src/launchpad_hydra.c b/src/hydra/src/launchpad_hydra.c
index f2c7779..3b94555 100644
--- a/src/hydra/src/launchpad_hydra.c
+++ b/src/hydra/src/launchpad_hydra.c
@@ -252,37 +252,35 @@ static int __handle_sigchld_event(sd_event_source *s,
return 0;
}
-static int __create_client_socket(const char *path)
+static int __create_client_socket(int type, int id)
{
struct sockaddr_un addr = { 0, };
int retry = CONNECT_RETRY_COUNT;
int fd;
- if (sizeof(addr.sun_path) <= strlen(path)) {
- _E("lenght of path is too long");
- return -1;
- }
-
fd = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
if (fd < 0) {
- _E("Failed to create socket(%s). errno(%d)", path, errno);
+ _E("Failed to create socket(%d:%d). errno(%d)",
+ type, id, errno);
return -1;
}
addr.sun_family = AF_UNIX;
- strncpy(addr.sun_path, path, sizeof(addr.sun_path));
- addr.sun_path[sizeof(addr.sun_path) - 1] = '\0';
+ snprintf(addr.sun_path, sizeof(addr.sun_path),
+ "%s/daemons/%d/%s%d-%d",
+ SOCKET_PATH, getuid(), HYDRA_LOADER_SOCKET_NAME,
+ type, id);
while (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
if (errno != ETIMEDOUT || retry <= 0) {
_E("Failed to connect socket(%s). errno(%d)",
- path, errno);
+ addr.sun_path, errno);
close(fd);
return -1;
}
usleep(CONNECT_RETRY_TIME);
retry--;
- _W("Retry(%d) to connect %s", retry, path);
+ _W("Retry(%d) to connect %s", retry, addr.sun_path);
}
return fd;
@@ -290,7 +288,6 @@ static int __create_client_socket(const char *path)
int __connect_to_launchpad_hydra(int type, int id)
{
- char path[PATH_MAX];
int fd;
int send_ret;
pid_t client_pid;
@@ -298,10 +295,7 @@ int __connect_to_launchpad_hydra(int type, int id)
_D("[hydra] enter, type: %d", type);
- snprintf(path, sizeof(path), "%s/daemons/%d/%s%d-%d",
- SOCKET_PATH, getuid(), HYDRA_LOADER_SOCKET_NAME,
- type, id);
- fd = __create_client_socket(path);
+ fd = __create_client_socket(type, id);
if (fd < 0)
return -1;