Re: [PATCH] RDMA/rtrs: Use strscpy() to cache the HCA name

From: Leon Romanovsky

Date: Tue Oct 13 2026 - 06:26:45 EST


On Mon, Oct 12, 2026 at 03:11:05PM +0200, Jinpu Wang wrote:
> 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?

Yes, users can change the hostname at any time. However, this code caches the
`ib_device` name, which can also change at any time.

Thanks

>
> >
> > 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
> > >