[lvc-project] [PATCH 5.10] smb: client: fix smbdirect_recv_io leak in smbd_negotiate() error path
Fedor Pchelkin
pchelkin at ispras.ru
Fri Oct 31 11:12:53 MSK 2025
On Fri, 31. Oct 11:05, Fedor Pchelkin wrote:
> On Fri, 31. Oct 10:38, Andrey Troshin wrote:
> > Добрый день, не понял описание проблемы, опишите пожалуйста подробнее.
> > Ну и опишите пожалуйста что требуется с нашей стороны (проверка этой гипотезы/репатч)...
>
> Добавляемый put_receive_buffer() будет повторно делать ib_dma_unmap_single()
> после того как это уже сделал smbd_post_recv() при обработке ошибки
> внутри себя.
>
> smbd_negotiate()
> smbd_post_recv()
> if (rc) {
> ib_dma_unmap_single()
Также тут ещё есть подозрительный вызов smbd_disconnect_rdma_connection().
Стоит происследовать и прийти к какому-то выводу.
Это, если что, стоит в любом случае всё проверять самостоятельно без
специальных указаний с нашей стороны. Оценка того, как патч ложится в
стабильную ветку и не привносит ли он своих новых проблем в контексте
стабильной ветки - немаловажная часть работы по изучению и портированию
фикса уязвимости.
> if (rc)
> put_receive_buffer()
> ib_dma_unmap_single() // incorrect
>
> С Вашей стороны требуется анализ исправлений при их портировании в
> стабильную ветку. В данном случае, портируемый патч может содержать уже
> свою проблему.
>
> В апстриме всё же эту проблему похоже решили, стоит обратить внимание на
> коммит 047682c370b6 ("smb: client: make sure we call ib_dma_unmap_single()
> only if we called ib_dma_map_single already"). В 5.10 будет корректно
> затаскивать серию из двух патчей, где бэкпорт 047682c370b6 идёт первым.
More information about the lvc-project
mailing list