fotg210-udc: Error in type cast in fotg210_in_fifo_handler()

From: lutovinova
Date: Mon Aug 31 2020 - 13:33:13 EST


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).