<div>Я понял суть предлагаемых вами изменений,  да можно создать серию патчей <span style="background-color:#ffffff;color:#1a1a1a;float:none;font-family:'ys text' , 'arial' , sans-serif;font-size:16px;font-style:normal;font-weight:400;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">047682c370b6 </span>+ daac51c7032036a0ca5f1aa419ad1b0471d1c6e0(который я предлагал). Я не нашел, что там дальше есть улучшения, потомучто я сравнивал 5.10 с 6.1(по логике что в 6.1 уже устранено), а предлагаемые вами изменения появились позже - для 6.6. Отсюда вывод: нужна серия патчей для 5.10 и еще и патч с <span style="background-color:#ffffff;color:#1a1a1a;float:none;font-family:'ys text' , 'arial' , sans-serif;font-size:16px;font-style:normal;font-weight:400;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">047682c370b6 </span> для 6.1. Завтра тогда посмотрю насколько это переносится, если переносится, тогда протестирую, составлю патчи. Но какбут-то это выходит уже за рамки этой CVE в какую-то следующую, нужно будет посмотреть и это</div><div><br /></div><div><br /></div><div>----------------</div>
                        <div>Кому: Andrey Troshin (drtrosh@yandex-team.ru);<br /></div>
                        <div>Копия: lvc-project@linuxtesting.org;<br /></div>
                        <div>Тема: [lvc-project] [PATCH 5.10] smb: client: fix smbdirect_recv_io leak in smbd_negotiate() error path;<br /></div>
                        <div>31.10.2025, 11:05, "Fedor Pchelkin" <pchelkin@ispras.ru>:<br /></div>
                        <blockquote><p>On Fri, 31. Oct 10:38, Andrey Troshin wrote:<br /></p><blockquote class="210e7a848e8fcb45wmi-quote">    Добрый день, не понял описание проблемы, опишите пожалуйста подробнее.<br /> Ну и опишите пожалуйста что требуется с нашей стороны (проверка этой гипотезы/репатч)...<br /></blockquote><p><br />Добавляемый put_receive_buffer() будет повторно делать ib_dma_unmap_single()<br />после того как это уже сделал smbd_post_recv() при обработке ошибки<br />внутри себя.<br /><br />smbd_negotiate()<br />  smbd_post_recv()<br />    if (rc) {<!-- --><br />      ib_dma_unmap_single()<br />  if (rc)<br />    put_receive_buffer()<br />      ib_dma_unmap_single() // incorrect<br /><br />С Вашей стороны требуется анализ исправлений при их портировании в<br />стабильную ветку.  В данном случае, портируемый патч может содержать уже<br />свою проблему.<br /><br />В апстриме всё же эту проблему похоже решили, стоит обратить внимание на<br />коммит 047682c370b6 ("smb: client: make sure we call ib_dma_unmap_single()<br />only if we called ib_dma_map_single already").  В 5.10 будет корректно<br />затаскивать серию из двух патчей, где бэкпорт 047682c370b6 идёт первым.<br /><br /></p><blockquote class="210e7a848e8fcb45wmi-quote"> <br /> <br /> <br />    ----------------<br /> <br />    Кому: Andrey Troshin (<a href="mailto:drtrosh@yandex-team.ru">drtrosh@yandex-team.ru</a>);<br /> <br />    Копия: <a href="mailto:lvc-project@linuxtesting.org">lvc-project@linuxtesting.org</a>;<br /> <br />    Тема: [lvc-project] [PATCH 5.10] smb: client: fix smbdirect_recv_io leak in smbd_negotiate() error path;<br /> <br />    30.10.2025, 16:59, "Fedor Pchelkin" <<a href="mailto:pchelkin@ispras.ru">pchelkin@ispras.ru</a>>:<br /> <br />      On Thu, 30. Oct 10:43, Andrey Troshin wrote:<br /> <br />       @@ -1083,8 +1083,10 @@ static int smbd_negotiate(struct smbd_connection *info)<br />                log_rdma_event(INFO, "smbd_post_recv rc=%d iov.addr=%llx iov.length=%x iov.lkey=%x\n",<br />                               rc, response->sge.addr,<br />                               response->sge.length, response->sge.lkey);<br />       - if (rc)<br />       + if (rc) {<!-- --><br />       + put_receive_buffer(info, response);<br /> <br />      Вижу здесь потенциальный баг в upstream-коммите.<br />      smbd_post_recv() на одном из своих путей обработки ошибки размапливает<br />      участок памяти с ib_dma_unmap_single(). Добавляемый put_receive_buffer()<br />      тоже это делает.<br /> <br />                        return rc;<br />       + }<br /> <br />                init_completion(&info->negotiate_completion);<br />                info->negotiate_done = false;<br />       --<br />       2.34.1<br /></blockquote></blockquote>