]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: tasks: fix possible segfault on task_destroy()
authorDragan Dosen <ddosen@haproxy.com>
Tue, 7 May 2019 13:25:25 +0000 (15:25 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 7 May 2019 16:58:52 +0000 (18:58 +0200)
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

index 859aea385b88f78b43405098f3699ef52ff129db..f16793323154a4a723ab388e3289dc736ba99344 100644 (file)
@@ -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