В ядре Linux устранена следующая уязвимость: можно: gs_usb: gs_usb_receive_bulk_callback(): отсоединить URL-адрес при ошибке usb_submit_urb() В коммите 7352e1d5932a ("can: gs_usb: gs_usb_receive_bulk_callback(): исправить Утечка памяти URB"), URB был повторно закреплен перед usb_submit_urb() в gs_usb_receive_bulk_callback(), чтобы предотвратить утечку этого URB во время уборка. Однако этот патч не учел, что usb_submit_urb() может провалиться. URB остается закрепленным и usb_kill_anchored_urbs(&parent->rx_submitted) в циклах gs_can_close() бесконечно, поскольку список привязок никогда не становится пустым. Чтобы исправить эту ошибку, отсоедините URB при возникновении ошибки usb_submit_urb(): также распечатайте информационное сообщение.
Показать оригинальное описание (английский)
In the Linux kernel, the following vulnerability has been resolved: can: gs_usb: gs_usb_receive_bulk_callback(): unanchor URL on usb_submit_urb() error In commit 7352e1d5932a ("can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak"), the URB was re-anchored before usb_submit_urb() in gs_usb_receive_bulk_callback() to prevent a leak of this URB during cleanup. However, this patch did not take into account that usb_submit_urb() could fail. The URB remains anchored and usb_kill_anchored_urbs(&parent->rx_submitted) in gs_can_close() loops infinitely since the anchor list never becomes empty. To fix the bug, unanchor the URB when an usb_submit_urb() error occurs, also print an info message.