On Linux, /proc/NNNN/cmdline is a NUL-separated list of arguments.
We used to truncate after the first one and add some whitespace.
---
procfs_pid_files.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/procfs_pid_files.c b/procfs_pid_files.c
index 4686153..9dbe3eb 100644
--- a/procfs_pid_files.c
+++ b/procfs_pid_files.c
@@ -429,19 +429,19 @@ procfs_read_cmdline_file (struct procfs_dir_entry
*dir_entry,
error_t err;
struct proc_stat *ps;
pid_t pid = atoi (dir_entry->dir->node->nn->dir_entry->name);
+
err = _proc_stat_create (pid, ps_context, &ps);
+ if (err)
+ return err;
err = set_field_value (ps, PSTAT_ARGS);
-
if (! err)
- if (asprintf (&cmdline_data, "%s \n", ps->args) == -1)
- return errno;
-
- memcpy (data, cmdline_data, strlen(cmdline_data));
- *len = strlen (data);
+ {
+ memcpy (data, ps->args, ps->args_len);
+ *len = ps->args_len;
+ }
_proc_stat_free (ps);
- free (cmdline_data);
return err;
}
--
1.7.1