From: Mateusz Moscicki Date: Fri, 10 Aug 2018 08:41:39 +0000 (+0200) Subject: Save full cmd_line X-Git-Tag: submit/tizen/20180822.121814~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b59c099801cbfaa2207e8bd909213fc7d9f03cbe;p=platform%2Fcore%2Fsystem%2Fcrash-worker.git Save full cmd_line Change-Id: I98ac10c8931a0e1c0b586c6e116279faa6ef9d44 --- diff --git a/src/crash-manager/crash-manager.c b/src/crash-manager/crash-manager.c index 6ecb416..922f99e 100644 --- a/src/crash-manager/crash-manager.c +++ b/src/crash-manager/crash-manager.c @@ -94,7 +94,7 @@ static struct crash_info { char *pid_info; char *tid_info; char *sig_info; - char cmd_name[FILENAME_MAX]; + char cmd_line[PATH_MAX]; char cmd_path[PATH_MAX]; char time_info[80]; char temp_dir[PATH_MAX]; @@ -236,8 +236,9 @@ static int get_cmd_info(struct crash_info *cinfo) goto error; } - snprintf(cinfo->cmd_name, sizeof(cinfo->cmd_name), "%s", - basename(cmdline)); + cmdline[ret] = '\0'; + + strncpy(cinfo->cmd_line, cmdline, sizeof(cinfo->cmd_line)); snprintf(exe_link, sizeof(exe_link), "/proc/%s/exe", cinfo->pid_info); @@ -347,7 +348,7 @@ static int set_crash_info(int argc, char *argv[]) } ret = snprintf(crash_info.name, sizeof(crash_info.name), "%s_%s_%s", - crash_info.cmd_name, + basename(crash_info.cmd_line), crash_info.pid_info, crash_info.time_info); if (ret < 0) { @@ -405,7 +406,7 @@ static int set_crash_info(int argc, char *argv[]) ret = snprintf(crash_info.sysassert_cs_path, sizeof(crash_info.sysassert_cs_path), "/tmp/crash_stack/%s_%s.info", - crash_info.cmd_name, crash_info.pid_info); + basename(crash_info.cmd_line), crash_info.pid_info); if (ret < 0) { _E("Failed to snprintf for sys-assert callstack path"); goto rm_temp; @@ -472,7 +473,7 @@ static void launch_crash_popup(void) builder = g_variant_builder_new(G_VARIANT_TYPE("a{ss}")); g_variant_builder_add(builder, "{ss}", "_SYSPOPUP_CONTENT_", "crash"); g_variant_builder_add(builder, "{ss}", "_PROCESS_NAME_", - crash_info.cmd_name); + basename(crash_info.cmd_line)); g_variant_builder_add(builder, "{ss}", "_EXEPATH_", crash_info.cmd_path); parameters = g_variant_new("(a{ss})", builder); g_variant_builder_unref(builder);