From: Dragan Dosen Date: Tue, 7 May 2019 13:25:25 +0000 (+0200) Subject: BUG/MEDIUM: tasks: fix possible segfault on task_destroy() X-Git-Tag: v2.0-dev3~83 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=75bc6d3e59a42fae5e5f197186e72ff587fc4ad3;p=thirdparty%2Fhaproxy.git 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 859aea385b..f167933231 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