From 75bc6d3e59a42fae5e5f197186e72ff587fc4ad3 Mon Sep 17 00:00:00 2001 From: Dragan Dosen Date: Tue, 7 May 2019 15:25:25 +0200 Subject: [PATCH] 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. --- include/proto/task.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/proto/task.h b/include/proto/task.h index 859aea385..f16793323 100644 --- a/include/proto/task.h +++ b/include/proto/task.h @@ -331,6 +331,9 @@ static inline void __task_free(struct task *t) 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