aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Sigurdhsson <Sigurdhsson@gmail.com>2012-07-02 02:01:48 +0200
committerSimon Sigurdhsson <Sigurdhsson@gmail.com>2012-07-02 14:08:02 +0200
commitffb330fe224974cd5f5ba7746779d9ad3a030d6a (patch)
tree638a32a14e8b13173a4c4ac13155b0bc7b1ed6f7
parentfc6b7096adb1a986f94e0be25162ff6182445702 (diff)
downloadcpulimit-ffb330fe224974cd5f5ba7746779d9ad3a030d6a.tar.gz
Fixed some pointer fails in process_iterator_apple.c
-rw-r--r--src/process_iterator_apple.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/process_iterator_apple.c b/src/process_iterator_apple.c
index 1f98bf2..5a7d35e 100644
--- a/src/process_iterator_apple.c
+++ b/src/process_iterator_apple.c
@@ -55,7 +55,7 @@ static int pti2proc(struct proc_taskallinfo *ti, struct process *process) {
static int get_process_pti(pid_t pid, struct proc_taskallinfo *ti) {
int bytes;
- bytes = proc_pidinfo(pid, PROC_PIDTASKALLINFO, 0, ti, sizeof(ti));
+ bytes = proc_pidinfo(pid, PROC_PIDTASKALLINFO, 0, ti, sizeof(*ti));
if (bytes <= 0) {
fprintf(stderr, "proc_pidinfo: %s\n", strerror(errno));
return -1;
@@ -67,24 +67,25 @@ static int get_process_pti(pid_t pid, struct proc_taskallinfo *ti) {
}
int get_next_process(struct process_iterator *it, struct process *p) {
- struct proc_taskallinfo *ti = NULL;
if (it->i == it->count) return -1;
if (it->filter->pid != 0 && !it->filter->include_children) {
- if (get_process_pti(it->filter->pid, ti) != 0) {
+ struct proc_taskallinfo ti;
+ if (get_process_pti(it->filter->pid, &ti) != 0) {
it->i = it->count = 0;
return -1;
}
it->i = it->count = 1;
- return pti2proc(ti, p);
+ return pti2proc(&ti, p);
}
while (it->i < it->count) {
- get_process_pti(it->pidlist[it->i], ti);
- if (ti == NULL || ti->pbsd.pbi_flags & PROC_FLAG_SYSTEM) {
+ struct proc_taskallinfo ti;
+ get_process_pti(it->pidlist[it->i], &ti);
+ if (ti.pbsd.pbi_flags & PROC_FLAG_SYSTEM) {
it->i++;
continue;
}
if (it->filter->pid != 0 && it->filter->include_children) {
- pti2proc(ti, p);
+ pti2proc(&ti, p);
it->i++;
if (p->pid != it->filter->pid && p->ppid != it->filter->pid)
continue;
@@ -92,7 +93,7 @@ int get_next_process(struct process_iterator *it, struct process *p) {
}
else if (it->filter->pid == 0)
{
- pti2proc(ti, p);
+ pti2proc(&ti, p);
it->i++;
return 0;
}
Un proyecto texto-plano.xyz