From 3b82d992ac34e7be7bdbb8ac39c064f2416b2948 Mon Sep 17 00:00:00 2001 From: Alastair Poole Date: Fri, 8 May 2020 22:14:01 +0100 Subject: [PATCH] proc: fix freebsd proc argument. --- src/bin/process.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/src/bin/process.c b/src/bin/process.c index 0d12298..f6987c1 100644 --- a/src/bin/process.c +++ b/src/bin/process.c @@ -809,13 +809,18 @@ _process_list_freebsd_get(void) { if (args[0]) { - char *base = basename(args[0]); - if (base && base != args[0]) + char *base = strdup(args[0]); + if (base) { - snprintf(name, sizeof(name), "%s", base); - char *spc = strchr(name, ' '); - if (!spc) - have_command = EINA_TRUE; + char *spc = strchr(base, ' '); + if (spc) *spc = '\0'; + + if (ecore_file_exists(base)) + { + snprintf(name, sizeof(name), "%s", basename(base)); + have_command = EINA_TRUE; + } + free(base); } } Eina_Strbuf *buf = eina_strbuf_new(); @@ -867,13 +872,18 @@ _cmd_get(Proc_Info *p, struct kinfo_proc *kp) { if (args[0]) { - char *base = basename(args[0]); - if (base && base != args[0]) + char *base = strdup(args[0]); + if (base) { - snprintf(name, sizeof(name), "%s", base); - char *spc = strchr(name, ' '); - if (!spc) - have_command = EINA_TRUE; + char *spc = strchr(base, ' '); + if (spc) *spc = '\0'; + + if (ecore_file_exists(base)) + { + snprintf(name, sizeof(name), "%s", basename(base)); + have_command = EINA_TRUE; + } + free(base); } } Eina_Strbuf *buf = eina_strbuf_new();