Re: [PATCH] RDMA/rtrs: Use strscpy() to cache the HCA name
From: Jinpu Wang
Date: Mon Oct 12 2026 - 09:27:33 EST
On Mon, Oct 12, 2026 at 10:08 AM Leon Romanovsky <leon@xxxxxxxxxx> wrote:
>
> On Fri, Oct 09, 2026 at 04:17:15PM +0300, Serhat Kumral wrote:
> > As the comment states, the HCA name is cached for sysfs. Use
> > strscpy() to copy it directly without unnecessary formatting and
> > avoid interpreting format specifiers in the name.
> >
> > Fixes: 6a98d71daea1 ("RDMA/rtrs: client: main functionality")
> > Signed-off-by: Serhat Kumral <serhatkumral1@xxxxxxxxx>
> > ---
> > found by smatch:
> > - drivers/infiniband/ulp/rtrs/rtrs-clt.c:1906 rtrs_rdma_conn_established() warn: call of 'scnprintf' with non-constant format argument
> >
> > drivers/infiniband/ulp/rtrs/rtrs-clt.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.c b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
> > index 927e3f30483c..c85e22f670ba 100644
> > --- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c
> > +++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
> > @@ -1918,8 +1918,8 @@ static int rtrs_rdma_conn_established(struct rtrs_clt_con *con,
> > * Cache the hca_port and hca_name for sysfs
> > */
> > clt_path->hca_port = con->c.cm_id->port_num;
> > - scnprintf(clt_path->hca_name, sizeof(clt_path->hca_name),
> > - clt_path->s.dev->ib_dev->name);
> > + strscpy(clt_path->hca_name, clt_path->s.dev->ib_dev->name,
> > + sizeof(clt_path->hca_name));
>
> Haris, Jinpu
>
> These names shouldn't be cached.
Leon, you mean the hostname could change at runtime?
>
> Thanks
>
> > clt_path->s.src_addr = con->c.cm_id->route.addr.src_addr;
> > /* set for_new_clt, to allow future reconnect on any path */
> > clt_path->for_new_clt = 1;
> > --
> > 2.53.0
> >