On Wed, 12 Feb 2025 23:43:53 +0100 Thorsten Blum <thorsten.blum@xxxxxxxxx> wrote: > strncpy() is deprecated for NUL-terminated destination buffers [1]. > > Replace memset() and strncpy() with strscpy_pad() to copy the version > string and fill the remaining bytes in the destination buffer with NUL > bytes. This avoids zeroing the memory before copying the string. > > Compile-tested only. > > Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings [1] > Cc: linux-hardening@xxxxxxxxxxxxxxx > Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxx> > --- > drivers/scsi/hpsa.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c > index 84d8de07b7ae..1334886b68d0 100644 > --- a/drivers/scsi/hpsa.c > +++ b/drivers/scsi/hpsa.c > @@ -7238,8 +7238,7 @@ static int hpsa_controller_hard_reset(struct pci_dev *pdev, > > static void init_driver_version(char *driver_version, int len) > { > - memset(driver_version, 0, len); > - strncpy(driver_version, HPSA " " HPSA_DRIVER_VERSION, len - 1); > + strscpy_pad(driver_version, HPSA " " HPSA_DRIVER_VERSION, len - 1); Wrong. That will truncate maximum length strings. David > } > > static int write_driver_ver_to_cfgtable(struct CfgTable __iomem *cfgtable)