From a3ce393e0aef3b103a77ef1ca0867fe63cfc01a4 Mon Sep 17 00:00:00 2001
From: Armin Luntzer <armin.luntzer@univie.ac.at>
Date: Wed, 22 Mar 2017 14:46:07 +0100
Subject: [PATCH] data processing net/tracker: return only valid nodes, check
 for NULL in pointer argument

---
 lib/data_proc_net.c     | 10 +++++-----
 lib/data_proc_tracker.c |  2 ++
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/lib/data_proc_net.c b/lib/data_proc_net.c
index 0273ccc..1754057 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 a27fceb..8750668 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;
-- 
GitLab