On Mon, Mar 10, 2025 at 06:38:01PM -0400, James Bottomley wrote: > 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.w...@cloud.ionos.com> > > Cc: "James E.J. Bottomley" <james.bottom...@hansenpartnership.com> > > Cc: "Martin K. Petersen" <martin.peter...@oracle.com> > > Cc: linux-s...@vger.kernel.org > > Signed-off-by: Kees Cook <k...@kernel.org> > > --- > > 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.
I answered this in a merged thread[1]. Can this get picked up? Thanks! -Kees [1] https://lore.kernel.org/lkml/202503111520.CF7527A@keescook/ -- Kees Cook