aboutsummaryrefslogtreecommitdiff
path: root/procps
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2013-08-27 16:10:53 +0100
committerRon Yorston <rmy@pobox.com>2013-08-27 16:10:53 +0100
commit3fd34651ea72ea1c335d3170f234cb0517fd897f (patch)
tree36e8fc40cffd464ffda4759020777dd3ca23ca31 /procps
parente3ac39098326de084a805d0dd31db9666b734f20 (diff)
parentd6ae4fb446daedfe3073d67be655942e9fa7eb18 (diff)
downloadbusybox-w32-3fd34651ea72ea1c335d3170f234cb0517fd897f.tar.gz
busybox-w32-3fd34651ea72ea1c335d3170f234cb0517fd897f.tar.bz2
busybox-w32-3fd34651ea72ea1c335d3170f234cb0517fd897f.zip
Merge branch 'busybox' into merge
Diffstat (limited to 'procps')
-rw-r--r--procps/lsof.c9
-rw-r--r--procps/pstree.c13
2 files changed, 16 insertions, 6 deletions
diff --git a/procps/lsof.c b/procps/lsof.c
index 7e0ffa4e5..b0156a538 100644
--- a/procps/lsof.c
+++ b/procps/lsof.c
@@ -61,9 +61,12 @@ int lsof_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
61 d_fd = opendir(name); 61 d_fd = opendir(name);
62 if (d_fd) { 62 if (d_fd) {
63 while ((entry = readdir(d_fd)) != NULL) { 63 while ((entry = readdir(d_fd)) != NULL) {
64 if (entry->d_type == DT_LNK) { 64 /* Skip entries '.' and '..' (and any hidden file) */
65 safe_strncpy(name + baseofs, entry->d_name, 10); 65 if (entry->d_name[0] == '.')
66 fdlink = xmalloc_readlink(name); 66 continue;
67
68 safe_strncpy(name + baseofs, entry->d_name, 10);
69 if ((fdlink = xmalloc_readlink(name)) != NULL) {
67 printf("%d\t%s\t%s\n", proc->pid, proc->exe, fdlink); 70 printf("%d\t%s\t%s\n", proc->pid, proc->exe, fdlink);
68 free(fdlink); 71 free(fdlink);
69 } 72 }
diff --git a/procps/pstree.c b/procps/pstree.c
index 8ba30795d..ed1a41289 100644
--- a/procps/pstree.c
+++ b/procps/pstree.c
@@ -34,8 +34,15 @@
34 34
35struct child; 35struct child;
36 36
37#ifdef ENABLE_FEATURE_SHOW_THREADS
38/* For threads, we add {...} around the comm, so we need two extra bytes */
39# define COMM_DISP_LEN (COMM_LEN + 2)
40#else
41# define COMM_DISP_LEN COMM_LEN
42#endif
43
37typedef struct proc { 44typedef struct proc {
38 char comm[COMM_LEN + 1]; 45 char comm[COMM_DISP_LEN + 1];
39// char flags; - unused, delete? 46// char flags; - unused, delete?
40 pid_t pid; 47 pid_t pid;
41 uid_t uid; 48 uid_t uid;
@@ -341,8 +348,8 @@ static void dump_by_user(PROC *current, uid_t uid)
341#if ENABLE_FEATURE_SHOW_THREADS 348#if ENABLE_FEATURE_SHOW_THREADS
342static void handle_thread(const char *comm, pid_t pid, pid_t ppid, uid_t uid) 349static void handle_thread(const char *comm, pid_t pid, pid_t ppid, uid_t uid)
343{ 350{
344 char threadname[COMM_LEN + 2]; 351 char threadname[COMM_DISP_LEN + 1];
345 sprintf(threadname, "{%.*s}", COMM_LEN - 2, comm); 352 sprintf(threadname, "{%.*s}", (int)sizeof(threadname) - 3, comm);
346 add_proc(threadname, pid, ppid, uid/*, 1*/); 353 add_proc(threadname, pid, ppid, uid/*, 1*/);
347} 354}
348#endif 355#endif