[lvc-project] [PATCH 5.10] smb: client: fix smbdirect_recv_io leak in smbd_negotiate() error path

Fedor Pchelkin pchelkin at ispras.ru
Thu Oct 30 16:59:27 MSK 2025


On Thu, 30. Oct 10:43, Andrey Troshin wrote:
> @@ -1083,8 +1083,10 @@ static int smbd_negotiate(struct smbd_connection *info)
>  	log_rdma_event(INFO, "smbd_post_recv rc=%d iov.addr=%llx iov.length=%x iov.lkey=%x\n",
>  		       rc, response->sge.addr,
>  		       response->sge.length, response->sge.lkey);
> -	if (rc)
> +	if (rc) {
> +		put_receive_buffer(info, response);

Вижу здесь потенциальный баг в upstream-коммите.

smbd_post_recv() на одном из своих путей обработки ошибки размапливает
участок памяти с ib_dma_unmap_single().  Добавляемый put_receive_buffer()
тоже это делает.

>  		return rc;
> +	}
>  
>  	init_completion(&info->negotiate_completion);
>  	info->negotiate_done = false;
> -- 
> 2.34.1



More information about the lvc-project mailing list