Message ID | e9d3e1fef69df4c9beaf402cc3ac342bad680791.1715240029.git.leon@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [rdma-next,v1] RDMA/IPoIB: Fix format truncation compilation errors | expand |
On Thu, 09 May 2024 10:39:33 +0300, Leon Romanovsky wrote: > Truncate the device name to store IPoIB VLAN name. > > [leonro@5b4e8fba4ddd kernel]$ make -s -j 20 allmodconfig > [leonro@5b4e8fba4ddd kernel]$ make -s -j 20 W=1 drivers/infiniband/ulp/ipoib/ > drivers/infiniband/ulp/ipoib/ipoib_vlan.c: In function ‘ipoib_vlan_add’: > drivers/infiniband/ulp/ipoib/ipoib_vlan.c:187:52: error: ‘%04x’ > directive output may be truncated writing 4 bytes into a region of size > between 0 and 15 [-Werror=format-truncation=] > 187 | snprintf(intf_name, sizeof(intf_name), "%s.%04x", > | ^~~~ > drivers/infiniband/ulp/ipoib/ipoib_vlan.c:187:48: note: directive > argument in the range [0, 65535] > 187 | snprintf(intf_name, sizeof(intf_name), "%s.%04x", > | ^~~~~~~~~ > drivers/infiniband/ulp/ipoib/ipoib_vlan.c:187:9: note: ‘snprintf’ output > between 6 and 21 bytes into a destination of size 16 > 187 | snprintf(intf_name, sizeof(intf_name), "%s.%04x", > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 188 | ppriv->dev->name, pkey); > | ~~~~~~~~~~~~~~~~~~~~~~~ > cc1: all warnings being treated as errors > make[6]: *** [scripts/Makefile.build:244: drivers/infiniband/ulp/ipoib/ipoib_vlan.o] Error 1 > make[6]: *** Waiting for unfinished jobs.... > > [...] Applied, thanks! [1/1] RDMA/IPoIB: Fix format truncation compilation errors https://git.kernel.org/rdma/rdma/c/49ca2b2ef3d003 Best regards,
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_vlan.c b/drivers/infiniband/ulp/ipoib/ipoib_vlan.c index 4bd161e86f8d..562df2b3ef18 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_vlan.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_vlan.c @@ -184,8 +184,12 @@ int ipoib_vlan_add(struct net_device *pdev, unsigned short pkey) ppriv = ipoib_priv(pdev); - snprintf(intf_name, sizeof(intf_name), "%s.%04x", - ppriv->dev->name, pkey); + /* If you increase IFNAMSIZ, update snprintf below + * to allow longer names. + */ + BUILD_BUG_ON(IFNAMSIZ != 16); + snprintf(intf_name, sizeof(intf_name), "%.10s.%04x", ppriv->dev->name, + pkey); ndev = ipoib_intf_alloc(ppriv->ca, ppriv->port, intf_name); if (IS_ERR(ndev)) {