From 9deef922486f03480cb074f97f9c7c2599be97ed Mon Sep 17 00:00:00 2001 From: Taejeong Lee Date: Fri, 4 Jan 2013 14:54:20 +0900 Subject: [PATCH] Patch to delivery argv[0]'s real pointer to launching process. [Issue#] N/A [Problem] The "process" using fork() appears twice in task manager. [Cause] N/A [Solution] Patch to delivery argv[0]'s real pointer Change-Id: I0724278a1cc33f7027bd75880d8db00a2e7f80d5 --- src/wrt-launchpad-daemon/launchpad_src/launchpad.c | 10 ++++++++++ src/wrt-launchpad-daemon/legacy/preload.h | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/src/wrt-launchpad-daemon/launchpad_src/launchpad.c b/src/wrt-launchpad-daemon/launchpad_src/launchpad.c index 739487b..a8dd993 100644 --- a/src/wrt-launchpad-daemon/launchpad_src/launchpad.c +++ b/src/wrt-launchpad-daemon/launchpad_src/launchpad.c @@ -264,7 +264,17 @@ _static_ void __real_launch(const char *app_path, bundle * kb) int i; app_argv = __create_argc_argv(kb, &app_argc); + +#ifndef NATIVE_LAUNCHPAD + if (__change_cmdline(app_path) < 0) { + _E("change cmdline fail"); + return; + } + + app_argv[0] = g_argv[0]; +#else app_argv[0] = strdup(app_path); +#endif for (i = 0; i < app_argc; i++) _D("input argument %d : %s##", i, app_argv[i]); diff --git a/src/wrt-launchpad-daemon/legacy/preload.h b/src/wrt-launchpad-daemon/legacy/preload.h index f0c91df..c479447 100644 --- a/src/wrt-launchpad-daemon/legacy/preload.h +++ b/src/wrt-launchpad-daemon/legacy/preload.h @@ -121,10 +121,14 @@ static inline void __preload_exec(int argc, char **argv) dl_main = dlsym(handle, "main"); if (dl_main != NULL) { +#ifndef NATIVE_LAUNCHPAD + /* do nothing */ +#else if (__change_cmdline(argv[0]) < 0) { _E("change cmdline fail"); return; } +#endif dl_main(argc, argv); } else { _E("dlsym not founded. bad preloaded app - check fpie pie"); -- 2.7.4