mirror of
https://github.com/sheumann/hush.git
synced 2024-12-22 14:30:31 +00:00
pmap: fix bogus {no such process} comm field text
function old new delta read_cmdline 246 266 +20 procps_get_maps 196 193 -3 packed_usage 30413 30404 -9 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 20/-12) Total: 8 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
00da72bee0
commit
049b007865
@ -588,12 +588,14 @@ void FAST_FUNC read_cmdline(char *buf, int col, unsigned pid, const char *comm)
|
|||||||
buf[sz] = ' ';
|
buf[sz] = ' ';
|
||||||
sz--;
|
sz--;
|
||||||
}
|
}
|
||||||
|
if (base[0] == '-') /* "-sh" (login shell)? */
|
||||||
|
base++;
|
||||||
|
|
||||||
/* If comm differs from argv0, prepend "{comm} ".
|
/* If comm differs from argv0, prepend "{comm} ".
|
||||||
* It allows to see thread names set by prctl(PR_SET_NAME).
|
* It allows to see thread names set by prctl(PR_SET_NAME).
|
||||||
*/
|
*/
|
||||||
if (base[0] == '-') /* "-sh" (login shell)? */
|
if (!comm)
|
||||||
base++;
|
return;
|
||||||
comm_len = strlen(comm);
|
comm_len = strlen(comm);
|
||||||
/* Why compare up to comm_len, not COMM_LEN-1?
|
/* Why compare up to comm_len, not COMM_LEN-1?
|
||||||
* Well, some processes rewrite argv, and use _spaces_ there
|
* 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';
|
buf[col - 1] = '\0';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
snprintf(buf, col, "[%s]", comm);
|
snprintf(buf, col, "[%s]", comm ? comm : "?");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
//usage:#define pmap_trivial_usage
|
//usage:#define pmap_trivial_usage
|
||||||
//usage: "[-xq] PID"
|
//usage: "[-xq] PID"
|
||||||
//usage:#define pmap_full_usage "\n\n"
|
//usage:#define pmap_full_usage "\n\n"
|
||||||
//usage: "Display detailed process memory usage"
|
//usage: "Display process memory usage"
|
||||||
//usage: "\n"
|
//usage: "\n"
|
||||||
//usage: "\n -x Show details"
|
//usage: "\n -x Show details"
|
||||||
//usage: "\n -q Quiet"
|
//usage: "\n -q Quiet"
|
||||||
@ -66,7 +66,7 @@ static int procps_get_maps(pid_t pid, unsigned opt)
|
|||||||
int ret;
|
int ret;
|
||||||
char buf[256];
|
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);
|
printf("%u: %s\n", (int)pid, buf);
|
||||||
|
|
||||||
if (!(opt & OPT_q) && (opt & OPT_x))
|
if (!(opt & OPT_q) && (opt & OPT_x))
|
||||||
|
Loading…
Reference in New Issue
Block a user