[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