From: Ben Collins __create_workqueue() not checking return of alloc_percpu() NULL dereference was possible. Signed-off-by: Ben Collins Signed-off-by: Andrew Morton --- kernel/workqueue.c | 5 +++++ 1 files changed, 5 insertions(+) diff -puN kernel/workqueue.c~unchecked-alloc_percpu-return-in-__create_workqueue kernel/workqueue.c --- devel/kernel/workqueue.c~unchecked-alloc_percpu-return-in-__create_workqueue 2005-11-22 20:13:57.000000000 -0800 +++ devel-akpm/kernel/workqueue.c 2005-11-22 20:13:57.000000000 -0800 @@ -315,6 +315,11 @@ struct workqueue_struct *__create_workqu return NULL; wq->cpu_wq = alloc_percpu(struct cpu_workqueue_struct); + if (!wq->cpu_wq) { + kfree(wq); + return NULL; + } + wq->name = name; /* We don't need the distraction of CPUs appearing and vanishing. */ lock_cpu_hotplug(); _