Messages in this thread | | | Date | Fri, 16 Aug 2013 18:15:07 +0200 | From | Richard Weinberger <> | Subject | Re: [PATCH] print_worker_info: Handle pointer with more care |
| |
Am 16.08.2013 18:12, schrieb Tejun Heo: > On Fri, Aug 16, 2013 at 05:56:46PM +0200, Richard Weinberger wrote: >> The function has a nice comment: >> /* >> * This function is called without any synchronization and @task >> * could be in any state. Be careful with dereferences. >> */ >> >> But a few lines later it blindly dereferences a few pointers. >> E.g. It can happen that the worker function is already done, >> then worker->current_pwq is NULL. > ... >> probe_kernel_read(&fn, &worker->current_func, sizeof(fn)); >> probe_kernel_read(&pwq, &worker->current_pwq, sizeof(pwq)); >> + if (!pwq) >> + goto print; >> + >> probe_kernel_read(&wq, &pwq->wq, sizeof(wq)); >> + if (!wq) >> + goto print; >> + > > But none of the above are dereferences. &ptr->field is offset > calculation, not a dereference.
On UML I hit the case that pwq is NULL. Then we oops at &pwq->wq...
Thanks, //richard
| |