BUG/MEDIUM: tasks: fix possible segfault on task_destroy()

Commit 3f795f7 ("MEDIUM: tasks: Merge task_delete() and task_free() into
task_destroy().") replaced task_delete() and task_free() with a single
function named task_destroy().

This patch adds a check for struct task* argument in function
task_destroy() to prevent a possible segfault on NULL and also to make
the function safer for use in other cases.
diff --git a/include/proto/task.h b/include/proto/task.h
index 859aea3..f167933 100644
--- a/include/proto/task.h
+++ b/include/proto/task.h
@@ -331,6 +331,9 @@
 
 static inline void task_destroy(struct task *t)
 {
+	if (!t)
+		return;
+
 	task_unlink_wq(t);
 	/* We don't have to explicitely remove from the run queue.
 	 * If we are in the runqueue, the test below will set t->process