ACK/APPLIED/cmnt: [PATCH] uwb: properly check kthread_run return value
Juerg Haefliger
juerg.haefliger at canonical.com
Mon Jul 23 12:20:28 UTC 2018
On 07/10/2018 01:49 PM, Paolo Pisati wrote:
> From: Andrey Konovalov <andreyknvl at google.com>
Added missing CVE line.
> uwbd_start() calls kthread_run() and checks that the return value is
> not NULL. But the return value is not NULL in case kthread_run() fails,
> it takes the form of ERR_PTR(-EINTR).
>
> Use IS_ERR() instead.
>
> Also add a check to uwbd_stop().
>
> Signed-off-by: Andrey Konovalov <andreyknvl at google.com>
> Cc: stable <stable at vger.kernel.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> (cherry picked from commit bbf26183b7a6236ba602f4d6a2f7cade35bba043)
> Signed-off-by: Paolo Pisati <paolo.pisati at canonical.com>
Signed-off-by: Juerg Haefliger <juergh at canonical.com>
Applied to trusty master-next.
...Juerg
> ---
> drivers/uwb/uwbd.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/uwb/uwbd.c b/drivers/uwb/uwbd.c
> index bdcb13c..5c98283 100644
> --- a/drivers/uwb/uwbd.c
> +++ b/drivers/uwb/uwbd.c
> @@ -303,18 +303,22 @@ static int uwbd(void *param)
> /** Start the UWB daemon */
> void uwbd_start(struct uwb_rc *rc)
> {
> - rc->uwbd.task = kthread_run(uwbd, rc, "uwbd");
> - if (rc->uwbd.task == NULL)
> + struct task_struct *task = kthread_run(uwbd, rc, "uwbd");
> + if (IS_ERR(task)) {
> + rc->uwbd.task = NULL;
> printk(KERN_ERR "UWB: Cannot start management daemon; "
> "UWB won't work\n");
> - else
> + } else {
> + rc->uwbd.task = task;
> rc->uwbd.pid = rc->uwbd.task->pid;
> + }
> }
>
> /* Stop the UWB daemon and free any unprocessed events */
> void uwbd_stop(struct uwb_rc *rc)
> {
> - kthread_stop(rc->uwbd.task);
> + if (rc->uwbd.task)
> + kthread_stop(rc->uwbd.task);
> uwbd_flush(rc);
> }
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20180723/857d87c2/attachment.sig>
More information about the kernel-team
mailing list