diff options
author | Hwankyu Jhun <h.jhun@samsung.com> | 2016-12-06 15:02:26 +0900 |
---|---|---|
committer | HwanKyu Jhun <h.jhun@samsung.com> | 2016-12-06 00:03:01 -0800 |
commit | 41bc5758d5aca3dca8a83347ee9e3ebc4bcd1f15 (patch) | |
tree | ce9081ac132f27507a0062e7483a6cd690b46fb3 | |
parent | 8ecea1290bbd5f5384104d8dd794d4fac8fa111c (diff) | |
download | aul-1-41bc5758d5aca3dca8a83347ee9e3ebc4bcd1f15.tar.gz aul-1-41bc5758d5aca3dca8a83347ee9e3ebc4bcd1f15.tar.bz2 aul-1-41bc5758d5aca3dca8a83347ee9e3ebc4bcd1f15.zip |
Fix bug about launch app tool
Change-Id: If34ba4c33aa1974d07daec1492abf7fd98a27684
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r-- | tool/launch_app.c | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/tool/launch_app.c b/tool/launch_app.c index d15b777a..a745a4df 100644 --- a/tool/launch_app.c +++ b/tool/launch_app.c @@ -21,33 +21,31 @@ #include <sys/types.h> #include <string.h> #include <glib.h> - #include <bundle_internal.h> - #include "aul.h" -#define ROOT_UID 0 - static char **gargv; static int gargc; -bundle *kb = NULL; - -static GMainLoop *mainloop = NULL; +bundle *kb; +static GMainLoop *mainloop; static bundle *create_internal_bundle(int start) { - bundle *kb; int i; - char arg[1024] = {0, }; + int j; + char arg[1024]; char *val_array[128]; kb = bundle_create(); - for (i = start; i < gargc - 1; i++) { - if ((i + 1) > gargc - 1) + if (kb == NULL) + return NULL; + + for (i = start; i + 1 < gargc; i += 2) { + if ((i + 1) > gargc - 1) { bundle_add(kb, gargv[i], " "); - else { - int j = 1; - strncpy(arg, gargv[i + 1], 1023); + } else { + j = 1; + snprintf(arg, sizeof(arg), "%s", gargv[i + 1]); val_array[0] = strtok(arg, ","); while (1) { val_array[j] = strtok(NULL, ","); @@ -56,32 +54,30 @@ static bundle *create_internal_bundle(int start) j++; } - if (j == 1) + if (j == 1) { bundle_add(kb, gargv[i], gargv[i + 1]); - else if (j > 1) + } else if (j > 1) { bundle_add_str_array(kb, gargv[i], (const char**)val_array, j); + } } } return kb; } -int launch(void) +static int launch(void) { - int pid = -1; - kb = create_internal_bundle(2); - if (NULL == kb) { + if (kb == NULL) { printf("bundle creation fail\n"); return -1; } - pid = aul_launch_app(gargv[1], kb); - return pid; + return aul_launch_app(gargv[1], kb); } -void print_usage(char *progname) +static void print_usage(char *progname) { printf("[usage] %s <pkgname> <key1> <val1> <key2> <val2> ...\n", progname); |