On Mon, 2025-03-10 at 15:25 -0700, Kees Cook wrote: > When a character array without a terminating NUL character has a > static > initializer, GCC 15's -Wunterminated-string-initialization will only > warn if the array lacks the "nonstring" attribute[1]. Mark the arrays > with __nonstring to and correctly identify the char array as "not a C > string" and thereby eliminate the warning. > > Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117178 [1] > Cc: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxx> > Cc: "James E.J. Bottomley" <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> > Cc: "Martin K. Petersen" <martin.petersen@xxxxxxxxxx> > Cc: linux-scsi@xxxxxxxxxxxxxxx > Signed-off-by: Kees Cook <kees@xxxxxxxxxx> > --- > drivers/scsi/pm8001/pm8001_ctl.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/scsi/pm8001/pm8001_ctl.c > b/drivers/scsi/pm8001/pm8001_ctl.c > index 85ff95c6543a..7618f9cc9986 100644 > --- a/drivers/scsi/pm8001/pm8001_ctl.c > +++ b/drivers/scsi/pm8001/pm8001_ctl.c > @@ -644,7 +644,7 @@ static DEVICE_ATTR(gsm_log, S_IRUGO, > pm8001_ctl_gsm_log_show, NULL); > #define FLASH_CMD_SET_NVMD 0x02 > > struct flash_command { > - u8 command[8]; > + u8 command[8] __nonstring; This looks a bit suboptimal ... is there anywhere in the kernel u8[] is actually used for real strings? In which case it would seem the better place to put the annotation is in the typedef for u8 arrays. Regards, James