diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2014-11-02 16:00:03 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2014-11-02 16:00:03 +0100 |
commit | 610c428cf8c9340d955c79cd2daca3ed8657f2b1 (patch) | |
tree | 864de76b1d318fa6f1d28cb78ade52461335cf1c | |
parent | 673603dae49fd06de782780a38e2914ed8cd8777 (diff) |
Fix proc_getprocinfo calls
The deallocation also needs to be fixed.
Also, fetch_procinfo already took care of the conversion.
* exec/elfcore.c (dump_core): Fix procinfoCnt taken from
proc_getprocinfo.
* utils/login.c (check_owned): Likewise.
* libps/procstat.c (merge_procinfo): Remove conversion between bytes and
int, already handled by fetch_procinfo.
-rw-r--r-- | exec/elfcore.c | 4 | ||||
-rw-r--r-- | libps/procstat.c | 4 | ||||
-rw-r--r-- | utils/login.c | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/exec/elfcore.c b/exec/elfcore.c index 033604c9..ff38a3ca 100644 --- a/exec/elfcore.c +++ b/exec/elfcore.c @@ -334,7 +334,7 @@ dump_core (task_t task, file_t file, off_t corelimit, mach_msg_type_number_t num_waits = 0; char pibuf[offsetof (struct procinfo, threadinfos[2])]; struct procinfo *pi = (void *) &pibuf; - mach_msg_type_number_t pi_size = sizeof pibuf / sizeof(*(procinfo_t*)0); + mach_msg_type_number_t pi_size = sizeof pibuf / sizeof (*(procinfo_t*)0); memset (&pstatus.data, 0, sizeof pstatus.data); memset (&psinfo.data, 0, sizeof psinfo.data); @@ -395,7 +395,7 @@ dump_core (task_t task, file_t file, off_t corelimit, psinfo.data.pr_wstat = pi->exitstatus; if ((void *) pi != &pibuf) - munmap (pi, pi_size); + munmap (pi, pi_size * sizeof (*(procinfo_t*) 0)); } if (err == 0) { diff --git a/libps/procstat.c b/libps/procstat.c index b00c9e41..0d4a565b 100644 --- a/libps/procstat.c +++ b/libps/procstat.c @@ -192,7 +192,7 @@ merge_procinfo (struct proc_stat *ps, ps_flags_t need, ps_flags_t have) return ENOMEM; } new_pi = ps->proc_info; - new_pi_size = ps->proc_info_size / sizeof(*(procinfo_t)0); + new_pi_size = ps->proc_info_size; if (really_need & PSTAT_THREAD_WAITS) /* We're going to get thread waits info, so make some storage for it too.*/ @@ -240,7 +240,7 @@ merge_procinfo (struct proc_stat *ps, ps_flags_t need, ps_flags_t have) else free (ps->proc_info); ps->proc_info = new_pi; - ps->proc_info_size = new_pi_size * sizeof(*(procinfo_t)0); + ps->proc_info_size = new_pi_size; ps->proc_info_vm_alloced = 1; } diff --git a/utils/login.c b/utils/login.c index 40bc3f45..a3e05636 100644 --- a/utils/login.c +++ b/utils/login.c @@ -263,7 +263,7 @@ check_owned (process_t proc_server, pid_t pid, int *owned) char *waits = 0; mach_msg_type_number_t num_waits = 0; struct procinfo _pi, *pi = &_pi; - mach_msg_type_number_t pi_size = sizeof _pi / sizeof(*(procinfo_t)0); + mach_msg_type_number_t pi_size = sizeof _pi / sizeof (*(procinfo_t)0); error_t err = proc_getprocinfo (proc_server, pid, &flags, (procinfo_t *)&pi, &pi_size, &waits, &num_waits); @@ -272,7 +272,7 @@ check_owned (process_t proc_server, pid_t pid, int *owned) { *owned = !(pi->state & PI_NOTOWNED); if (pi != &_pi) - munmap (pi, pi_size); + munmap (pi, pi_size * sizeof (*(procinfo_t)0)); } return err; |