aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libbb/procps.c8
-rw-r--r--procps/pmap.c4
2 files changed, 7 insertions, 5 deletions
diff --git a/libbb/procps.c b/libbb/procps.c
index 05eefe0da..4edc54d48 100644
--- a/libbb/procps.c
+++ b/libbb/procps.c
@@ -588,12 +588,14 @@ void FAST_FUNC read_cmdline(char *buf, int col, unsigned pid, const char *comm)
buf[sz] = ' ';
sz--;
}
+ if (base[0] == '-') /* "-sh" (login shell)? */
+ base++;
/* If comm differs from argv0, prepend "{comm} ".
* It allows to see thread names set by prctl(PR_SET_NAME).
*/
- if (base[0] == '-') /* "-sh" (login shell)? */
- base++;
+ if (!comm)
+ return;
comm_len = strlen(comm);
/* Why compare up to comm_len, not COMM_LEN-1?
* Well, some processes rewrite argv, and use _spaces_ there
@@ -612,7 +614,7 @@ void FAST_FUNC read_cmdline(char *buf, int col, unsigned pid, const char *comm)
buf[col - 1] = '\0';
}
} else {
- snprintf(buf, col, "[%s]", comm);
+ snprintf(buf, col, "[%s]", comm ? comm : "?");
}
}
diff --git a/procps/pmap.c b/procps/pmap.c
index fd995a54d..aa221cfb8 100644
--- a/procps/pmap.c
+++ b/procps/pmap.c
@@ -20,7 +20,7 @@
//usage:#define pmap_trivial_usage
//usage: "[-xq] PID"
//usage:#define pmap_full_usage "\n\n"
-//usage: "Display detailed process memory usage"
+//usage: "Display process memory usage"
//usage: "\n"
//usage: "\n -x Show details"
//usage: "\n -q Quiet"
@@ -66,7 +66,7 @@ static int procps_get_maps(pid_t pid, unsigned opt)
int ret;
char buf[256];
- read_cmdline(buf, sizeof(buf), pid, "no such process");
+ read_cmdline(buf, sizeof(buf), pid, NULL);
printf("%u: %s\n", (int)pid, buf);
if (!(opt & OPT_q) && (opt & OPT_x))