On Fri, Jun 05, 2020 at 11:26:20PM +0800, Zhangfei Gao wrote: > > > On 2020/6/5 下午8:17, Herbert Xu wrote: > > On Fri, Jun 05, 2020 at 05:34:32PM +0800, Zhangfei Gao wrote: > > > Will add a check after the copy. > > > > > > strlcpy(interface.name, pdev->driver->name, sizeof(interface.name)); > > > if (strlen(pdev->driver->name) != strlen(interface.name)) > > > return -EINVAL; > > You don't need to do strlen. The function strlcpy returns the > > length of the source string. > > > > Better yet use strscpy which will even return an error for you. > > > > > Yes, good idea, we can use strscpy. > > + int ret; > > - strncpy(interface.name, pdev->driver->name, sizeof(interface.name)); > + ret = strscpy(interface.name, pdev->driver->name, > sizeof(interface.name)); > + if (ret < 0) > + return ret; You might want to use -ENAMETOOLONG instead of the strscpy return value of -E2BIG.