Patch to delivery argv[0]'s real pointer to launching process.
authorTaejeong Lee <taejeong.lee@samsung.com>
Fri, 4 Jan 2013 05:54:20 +0000 (14:54 +0900)
committerTaejeong Lee <taejeong.lee@samsung.com>
Fri, 4 Jan 2013 05:56:17 +0000 (14:56 +0900)
[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
src/wrt-launchpad-daemon/legacy/preload.h

index 739487b..a8dd993 100644 (file)
@@ -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]);
index f0c91df..c479447 100644 (file)
@@ -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");