[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <e9607f21-f0d0-7b20-8d55-fad9cee7ee28@hartkopp.net>
Date: Mon, 27 Sep 2021 13:32:12 +0200
From: Oliver Hartkopp <socketcan@...tkopp.net>
To: "Ziyang Xuan (William)" <william.xuanziyang@...wei.com>
Cc: mkl@...gutronix.de, davem@...emloft.net, kuba@...nel.org,
linux-can@...r.kernel.org, netdev@...r.kernel.org
Subject: Re: [PATCH net] can: isotp: add result check for
wait_event_interruptible()
On 27.09.21 03:39, Ziyang Xuan (William) wrote:
>> Using wait_event_interruptible() to wait for complete transmission,
>> but do not check the result of wait_event_interruptible() which can
>> be interrupted. It will result in tx buffer has multiple accessers
>> and the later process interferes with the previous process.
>>
>> Following is one of the problems reported by syzbot.
>>
>> =============================================================
>> WARNING: CPU: 0 PID: 0 at net/can/isotp.c:840 isotp_tx_timer_handler+0x2e0/0x4c0
>> CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.13.0-rc7+ #68
>> Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1 04/01/2014
>> RIP: 0010:isotp_tx_timer_handler+0x2e0/0x4c0
>> Call Trace:
>> <IRQ>
>> ? isotp_setsockopt+0x390/0x390
>> __hrtimer_run_queues+0xb8/0x610
>> hrtimer_run_softirq+0x91/0xd0
>> ? rcu_read_lock_sched_held+0x4d/0x80
>> __do_softirq+0xe8/0x553
>> irq_exit_rcu+0xf8/0x100
>> sysvec_apic_timer_interrupt+0x9e/0xc0
>> </IRQ>
>> asm_sysvec_apic_timer_interrupt+0x12/0x20
>>
>> Add result check for wait_event_interruptible() in isotp_sendmsg()
>> to avoid multiple accessers for tx buffer.
>>
>> Reported-by: syzbot+78bab6958a614b0c80b9@...kaller.appspotmail.com
>> Fixes: e057dd3fc20f ("can: add ISO 15765-2:2016 transport protocol")
>> Signed-off-by: Ziyang Xuan <william.xuanziyang@...wei.com>
>
> Hi Oliver,
> I send a new patch with this problem, ignore this patch please.
>
> Thank you!
>
I was still pondering on this patch ;-)
But I'll take a look on the update now.
Thanks & best regards,
Oliver
Powered by blists - more mailing lists