From f38c16748eb4a109b44c2e99c8ff377ddf3a23cf Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 23 May 2023 22:51:26 +0200 Subject: libps: Fix allocating args/env proc_getprocargs and proc_getprocenv read their size value --- libps/procstat.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/libps/procstat.c b/libps/procstat.c index 09c07e2a..4de4216d 100644 --- a/libps/procstat.c +++ b/libps/procstat.c @@ -921,12 +921,11 @@ proc_stat_set_flags (struct proc_stat *ps, ps_flags_t flags) /* The process's exec arguments */ if (NEED (PSTAT_ARGS, PSTAT_PID)) { - char *buf = malloc (100); - ps->args_len = 100; + mach_msg_type_number_t args_len = 100; + char *buf = malloc (args_len); ps->args = buf; if (ps->args) { - mach_msg_type_number_t args_len; if (proc_getprocargs (server, ps->pid, &ps->args, &args_len)) free (buf); else @@ -943,12 +942,11 @@ proc_stat_set_flags (struct proc_stat *ps, ps_flags_t flags) /* The process's exec environment */ if (NEED (PSTAT_ENV, PSTAT_PID)) { - char *buf = malloc (100); - ps->env_len = 100; + mach_msg_type_number_t env_len = 100; + char *buf = malloc (env_len); ps->env = buf; if (ps->env) { - mach_msg_type_number_t env_len; if (proc_getprocenv (server, ps->pid, &ps->env, &env_len)) free (buf); else -- cgit v1.2.3