diff --git a/lib/data_proc_net.c b/lib/data_proc_net.c index 0273ccc55d6c9f6820019902d3dd9375e8d8850d..1754057717880c788ea3e9cdbae12c13d8bdbff0 100644 --- a/lib/data_proc_net.c +++ b/lib/data_proc_net.c @@ -215,13 +215,13 @@ struct proc_tracker *pn_get_next_pending_tracker(struct proc_net *pn) if (cnt++ > pn->n) break; - if (!pt_track_tasks_pending(pt)) - pn_node_to_queue_tail(pn, pt); - else - break; + if (pt_track_tasks_pending(pt)) + return pt; + + pn_node_to_queue_tail(pn, pt); } - return pt; + return NULL; } diff --git a/lib/data_proc_tracker.c b/lib/data_proc_tracker.c index a27fceb7786d250a313e020508f51ff916ca766a..8750668455164dc658a27eebc73031439b658b09 100644 --- a/lib/data_proc_tracker.c +++ b/lib/data_proc_tracker.c @@ -152,6 +152,8 @@ struct proc_task *pt_track_get(struct proc_tracker *pt) { struct proc_task *t; + if (!pt) + return NULL; if (list_empty(&pt->tasks)) return NULL;