On Mon, Jan 13, 2020 at 09:12:26PM +0200, Kamal Heib wrote: > Make sure to return -EINVAL when the supplied string is bigger then > IB_DEVICE_NODE_DESC_MAX. > > Fixes: c5bcbbb9fe00 ("IB: Allow userspace to set node description") > Signed-off-by: Kamal Heib <kamalheib1@xxxxxxxxx> > drivers/infiniband/core/sysfs.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c > index 087682e6969e..55f4d7c1fcc9 100644 > +++ b/drivers/infiniband/core/sysfs.c > @@ -1265,10 +1265,13 @@ static ssize_t node_desc_store(struct device *device, > struct ib_device_modify desc = {}; > int ret; > > + if (count > IB_DEVICE_NODE_DESC_MAX) > + return -EINVAL; > + > if (!dev->ops.modify_device) > return -EOPNOTSUPP; > > - memcpy(desc.node_desc, buf, min_t(int, count, IB_DEVICE_NODE_DESC_MAX)); > + memcpy(desc.node_desc, buf, count); I think this should just be written as if (strscpy(desc.node_desc, buf, sizeof(desc.node_desc)) == -E2BIG) return -EINVAL; Jason