Input: iqs626a - replace snprintf() with scnprintf()
authorJeff LaBundy <jeff@labundy.com>
Sun, 5 Jan 2025 18:56:48 +0000 (12:56 -0600)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 4 Jun 2025 04:39:35 +0000 (21:39 -0700)
W=1 builds warn that the data written to 'tc_name' is truncated for
theoretical strings such as "channel-2147483646".

Solve this problem by replacing snprintf() with scnprintf() so that
the return value corresponds to what was actually written.

In practice, the largest string that will be written is "channel-8",
and the return value is not actually evaluated. Instead, this patch
ultimately removes the warning without unnecessarily increasing the
size of 'tc_name' from 10 bytes.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202412221136.0S4kRoCC-lkp@intel.com/
Signed-off-by: Jeff LaBundy <jeff@labundy.com>
Link: https://lore.kernel.org/r/Z3rV8GTHxLyjBQ5I@nixie71
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/misc/iqs626a.c

index 7a6e6927f331257f4f01effaa4ead6da965cd693..7fba4a8edceb489e33e8c478a3bed913e12e81b0 100644 (file)
@@ -771,7 +771,7 @@ static int iqs626_parse_trackpad(struct iqs626_private *iqs626,
                u8 *thresh = &sys_reg->tp_grp_reg.ch_reg_tp[i].thresh;
                char tc_name[10];
 
-               snprintf(tc_name, sizeof(tc_name), "channel-%d", i);
+               scnprintf(tc_name, sizeof(tc_name), "channel-%d", i);
 
                struct fwnode_handle *tc_node __free(fwnode_handle) =
                                fwnode_get_named_child_node(ch_node, tc_name);