On Fri, 31 May 2013, Mike Frysinger wrote:
On Friday 31 May 2013 20:34:16 Dag Wieers wrote:
--- busybox-1.21.0/procps/pstree.c.orig 2013-06-01 02:27:14.008530872 +0200
+++ busybox-1.21.0/procps/pstree.c 2013-06-01 02:31:36.483537110 +0200
@@ -342,7 +342,7 @@
static void handle_thread(const char *comm, pid_t pid, pid_t ppid, uid_t
uid) {
char threadname[COMM_LEN + 2];
- sprintf(threadname, "{%.*s}", COMM_LEN - 2, comm);
+ sprintf(threadname, "{%.*s}", COMM_LEN - 1, comm);
add_proc(threadname, pid, ppid, uid/*, 1*/);
}
hmm, your change is correct all by itself (but really it should be using
sizeof()), but i don't think the current code is correct. it *should* be
truncating 2 bytes from the comm name.
If this fixes the truncated thread names I don't care that much which fix
is being chosen. I'll leave that up to the maintainer(s) :)
BTW I don't see why we do COMM_LEN + 1 in the non-threaded name. Isn't the
process name always limited to 15 characters (plus null-termination) ?
Which is the size of COMM_LEN (=16) ? So COMM_LEN + 2 for threadname is
fine as we add 2 curly brackets, whereas you eventually have
for threads:
COMM_DISP_LEN + 1 = COMM_LEN + 2 + 1 = COMM_LEN + 3
instead of COMM_LEN + 2. What am I missing ?
--
-- dag wieers, [email protected], http://dag.wieers.com/
-- dagit linux solutions, [email protected], http://dagit.net/
[Any errors in spelling, tact or fact are transmission errors]
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox