diff -u -r pcp-2.5.0-2/src/pmdas/linux/proc_pid.c pcp-dev/src/pmdas/linux/proc_pid.c --- pcp-2.5.0-2/src/pmdas/linux/proc_pid.c 2006-01-16 17:40:19.000000000 +1100 +++ pcp-dev/src/pmdas/linux/proc_pid.c 2006-01-22 04:52:39.997488750 +1100 @@ -153,7 +153,7 @@ sprintf(buf, "/proc/%d/cmdline", pidlist[i]); if ((fd = open(buf, O_RDONLY)) >= 0) { sprintf(buf, "%06d ", pidlist[i]); - if ((k = read(fd, buf+7, sizeof(buf))) > 0) { + if ((k = read(fd, buf+7, sizeof(buf)-6)) > 0) { /* Remove NULL terminators from cmdline string array */ /* Added by Mike Mason */ for (n = 7; n < k + 6; n++) { @@ -175,7 +175,7 @@ k = 0; if ((fd = open(buf, O_RDONLY)) >= 0) { char buf1[1024]; - if ((k = read(fd, buf1, sizeof(buf))) > 0) { + if ((k = read(fd, buf1, sizeof(buf1))) > 0) { if ((p = strchr(buf1, '\n')) != NULL) *p = '\0'; sprintf(buf, "%06d (%s)", pidlist[i], buf1+6);