usb: gadget: f_fs: Fix a race condition when processing setup packets.
authorChris Wulff <Chris.Wulff@biamp.com>
Tue, 23 Apr 2024 18:02:15 +0000 (18:02 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Apr 2024 23:26:10 +0000 (16:26 -0700)
commit0aea736ddb877b93f6d2dd8cf439840d6b4970a9
tree697405c95454f89c349e62bc593c2de82243f76c
parenta4b46d450c49f32e9d4247b421e58083fde304ce
usb: gadget: f_fs: Fix a race condition when processing setup packets.

If the USB driver passes a pointer into the TRB buffer for creq, this
buffer can be overwritten with the status response as soon as the event
is queued. This can make the final check return USB_GADGET_DELAYED_STATUS
when it shouldn't. Instead use the stored wLength.

Fixes: 4d644abf2569 ("usb: gadget: f_fs: Only return delayed status when len is 0")
Cc: stable <stable@kernel.org>
Signed-off-by: Chris Wulff <chris.wulff@biamp.com>
Link: https://lore.kernel.org/r/CO1PR17MB5419BD664264A558B2395E28E1112@CO1PR17MB5419.namprd17.prod.outlook.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/f_fs.c