diff --git a/src/processes.c b/src/processes.c
index 90d4d79e863ed4f9d1abd24e7fb78f1152f4d1ee..7a3c0e9b7f6bf4faa72f2486ff5b41e781b446c7 100644 (file)
--- a/src/processes.c
+++ b/src/processes.c
# undef SAVE_FOB_64
#endif
+# include <sys/user.h>
# include <dirent.h>
+
+#ifndef MAXCOMLEN
+# define MAXCOMLEN 16
+#endif
+
/* #endif KERNEL_SOLARIS */
#else
{
int i;
+#if KERNEL_LINUX
+ const size_t max_procname_len = 15;
+#elif KERNEL_SOLARIS || KERNEL_FREEBSD
+ const size_t max_procname_len = MAXCOMLEN -1;
+#endif
+
for (i = 0; i < ci->children_num; ++i) {
oconfig_item_t *c = ci->children + i;
c->children_num, c->values[0].value.string);
}
+#if KERNEL_LINUX || KERNEL_SOLARIS || KERNEL_FREEBSD
+ if (strlen (c->values[0].value.string) > max_procname_len) {
+ WARNING ("processes plugin: this platform has a %zu character limit "
+ "to process names. The `Process \"%s\"' option will "
+ "not work as expected.",
+ max_procname_len, c->values[0].value.string);
+ }
+#endif
+
ps_list_register (c->values[0].value.string, NULL);
}
else if (strcasecmp (c->key, "ProcessMatch") == 0)
ps->num_proc = 0;
ps->num_lwp = 0;
*state = (char) 'Z';
+
+ sfree(myStatus);
+ sfree(myInfo);
+ sfree(myUsage);
return (0);
} else {
ps->num_proc = 1;
pse.io_syscr = -1;
pse.io_syscw = -1;
- pse.cswitch_vol = -1;
- pse.cswitch_invol = -1;
-
ps_list_add (procs[i].p_comm, have_cmdline ? cmdline : NULL, &pse);
switch (procs[i].p_stat)
pse.io_syscr = ps.io_syscr;
pse.io_syscw = ps.io_syscw;
- pse.cswitch_vol = -1;
- pse.cswitch_invol = -1;
-
switch (state)
{
case 'R': running++; break;