2020-08-31 17:37:54

by Nadezda Lutovinova

[permalink] [raw]
Subject: fotg210-udc: Error in type cast in fotg210_in_fifo_handler()

If in fotg210_udc_probe() after initialization
INIT_LIST_HEAD(&ep->queue)
and after a registration of an interrupt handler in fotg210_irq()
fotg210_in_fifo_handler() is calling then in fotg210_in_fifo_handler()
list_entry() tries to get struct fotg210_request from ep->queue.next,
but
after initialization ep->queue.next is from struct fotg210_udc.

Also this problem appears in fotg210_out_fifo_handler().

In fotg210_ep0in() and fotg210_ep0out()
there is checking by list_empty() before calling list_entry ().

Found by Linux Driver Verification project (linuxtesting.org).