input/joystick: magellan: Mark __nonstring look-up table
authorKees Cook <kees@kernel.org>
Wed, 16 Apr 2025 17:45:17 +0000 (10:45 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 19 Apr 2025 01:33:42 +0000 (18:33 -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?";
      |                                            ^~~~~~~~~~~~~~~~~~

Add the annotation and While at it, mark the table as const too.

Signed-off-by: Kees Cook <kees@kernel.org>
Link: https://lore.kernel.org/r/20250416174513.work.662-kees@kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/joystick/magellan.c

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