From e30139dff5b92abb4d81b61ed5003c803b4b72ad Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 12 Mar 2008 05:01:14 +0000 Subject: [PATCH] - KSE may free a thread that was never actually forked. This will leave td_cpuset NULL. Check for this condition before dereferencing the cpuset. Reported by: david@catwhisker.org, miwi@freebsd.org Sponsored by: Nokia --- sys/kern/kern_thread.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sys/kern/kern_thread.c b/sys/kern/kern_thread.c index 8d9f75320a4..43522ef7649 100644 --- a/sys/kern/kern_thread.c +++ b/sys/kern/kern_thread.c @@ -343,7 +343,12 @@ thread_alloc(void) void thread_free(struct thread *td) { +#ifdef KSE + if (td->td_cpuset != NULL) + cpuset_rel(td->td_cpuset); +#else cpuset_rel(td->td_cpuset); +#endif td->td_cpuset = NULL; cpu_thread_free(td); if (td->td_altkstack != 0) -- 2.45.0