Re: KASAN: use-after-free Read in si470x_int_in_callback (2)

From: Alan Stern
Date: Fri Nov 22 2019 - 10:35:17 EST

On Fri, 22 Nov 2019, syzbot wrote:

> Hello,
> syzbot has tested the proposed patch but the reproducer still triggered
> crash:
> INFO: rcu detected stall in dummy_timer
> radio-si470x 1-1:0.0: non-zero urb status (-71)
> radio-si470x 4-1:0.0: non-zero urb status (-71)
> radio-si470x 3-1:0.0: non-zero urb status (-71)


The reason for this stall is because the driver goes into a tight
resubmit loop when the interrupt URB completes with an unrecognized
error status. Instead, the driver should log an error message and
avoid resubmitting. Error recovery can be done at a higher level.

In other words, change the

goto resubmit; /* Maybe we can recover. */

line in the completion handler into a return.

Alan Stern