On Thu, Oct 19, 2023 at 08:47:24AM +0300, Calvince Otieno wrote: > Checkpatch suggests using strscpy() instead of strcpy(). > > The advantages of strscpy() are that it always adds a NUL terminator > and prevents read/write overflows if the source string is not properly > terminated. > > strcpy() lacks built-in bounds checking for the destination buffer, > making it susceptible to buffer overflows. These overflows can lead > to various unpredictable behaviors. > > In this specific context, both strscpy and strcpy performs the same > operation without any functional difference. > > The reason for this equivalence is that the driver_name string "vme_fake" > is shorter than the size of the fake_bridge->name array which is defined > as 16 characters (struct vme_bridge {char name[VMENAMSIZ];...}). Thus, > there is no risk of buffer overflow in either case. VMENAMSIZ variable > holds a constant value of 16 (#define VMENAMSIZ 16) > > The null-terminated "vme_fake" string > (static const char driver_name[] = "vme_fake";) can be safely copied into > fake_bridge->name using either strscpy or strcpy. > > While using strscpy() does not address any bugs, it is considered a better > practice and aligns with checkpatch recommendations. > > Signed-off-by: Calvince Otieno <calvncce@xxxxxxxxx> > --- Thanks! Reviewed-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> regards, dan carpenter