input/joystick: magellan: Mark __nonstring look-up table const
authorKees Cook <kees@kernel.org>
Tue, 15 Apr 2025 23:24:05 +0000 (16:24 -0700)
committerKees Cook <kees@kernel.org>
Mon, 28 Apr 2025 17:32:43 +0000 (10:32 -0700)
GCC 15's new -Wunterminated-string-initialization notices that the
16 character lookup table "nibbles" (which is not used as a C-String)
needs to be marked as "nonstring":

drivers/input/joystick/magellan.c: In function 'magellan_crunch_nibbles':
drivers/input/joystick/magellan.c:51:44: warning: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (17 chars into 16 available) [-Wunterminated-string-initialization]
   51 |         static unsigned char nibbles[16] = "0AB3D56GH9:K<MN?";
      |                                            ^~~~~~~~~~~~~~~~~~

While the annotation was added in commit 48709ee1fa9a ("gcc-15: add
'__nonstring' markers to byte arrays") also mark the table as const.

Signed-off-by: Kees Cook <kees@kernel.org>
drivers/input/joystick/magellan.c

index d73389a..7622638 100644 (file)
@@ -48,7 +48,7 @@ struct magellan {
 
 static int magellan_crunch_nibbles(unsigned char *data, int count)
 {
-       static unsigned char nibbles[16] __nonstring = "0AB3D56GH9:K<MN?";
+       static const unsigned char nibbles[16] __nonstring = "0AB3D56GH9:K<MN?";
 
        do {
                if (data[count] == nibbles[data[count] & 0xf])