drivers/input/touchscreen/egalax_ts_serial.c:116:21: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32

From: kernel test robot
Date: Fri Nov 17 2023 - 04:47:03 EST


Hi Böszörményi,

FYI, the error/warning still remains.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 7475e51b87969e01a6812eac713a1c8310372e8a
commit: 6b0f8f9c52efe24d6dac06ab963b7bd91c723751 Input: add eGalaxTouch serial touchscreen driver
date: 8 years ago
config: x86_64-buildonly-randconfig-001-20231012 (https://download.01.org/0day-ci/archive/20231117/202311171716.uIQY5rT4-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231117/202311171716.uIQY5rT4-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311171716.uIQY5rT4-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

In file included from include/linux/kobject.h:21,
from include/linux/module.h:17,
from drivers/input/touchscreen/egalax_ts_serial.c:19:
include/linux/sysfs.h: In function 'sysfs_get_dirent':
include/linux/sysfs.h:517:44: warning: pointer targets in passing argument 2 of 'kernfs_find_and_get' differ in signedness [-Wpointer-sign]
517 | return kernfs_find_and_get(parent, name);
| ^~~~
| |
| const unsigned char *
In file included from include/linux/sysfs.h:15:
include/linux/kernfs.h:428:57: note: expected 'const char *' but argument is of type 'const unsigned char *'
428 | kernfs_find_and_get(struct kernfs_node *kn, const char *name)
| ~~~~~~~~~~~~^~~~
drivers/input/touchscreen/egalax_ts_serial.c: In function 'egalax_connect':
>> drivers/input/touchscreen/egalax_ts_serial.c:116:21: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
116 | "%s/input0", serio->phys);
| ^~~~~~~
drivers/input/touchscreen/egalax_ts_serial.c:115:9: note: 'snprintf' output between 8 and 39 bytes into a destination of size 32
115 | snprintf(egalax->phys, sizeof(egalax->phys),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116 | "%s/input0", serio->phys);
| ~~~~~~~~~~~~~~~~~~~~~~~~~


vim +116 drivers/input/touchscreen/egalax_ts_serial.c

94
95 /*
96 * egalax_connect() is the routine that is called when someone adds a
97 * new serio device that supports egalax protocol and registers it as
98 * an input device. This is usually accomplished using inputattach.
99 */
100 static int egalax_connect(struct serio *serio, struct serio_driver *drv)
101 {
102 struct egalax *egalax;
103 struct input_dev *input_dev;
104 int error;
105
106 egalax = kzalloc(sizeof(struct egalax), GFP_KERNEL);
107 input_dev = input_allocate_device();
108 if (!egalax) {
109 error = -ENOMEM;
110 goto err_free_mem;
111 }
112
113 egalax->serio = serio;
114 egalax->input = input_dev;
115 snprintf(egalax->phys, sizeof(egalax->phys),
> 116 "%s/input0", serio->phys);
117
118 input_dev->name = "EETI eGalaxTouch Serial TouchScreen";
119 input_dev->phys = egalax->phys;
120 input_dev->id.bustype = BUS_RS232;
121 input_dev->id.vendor = SERIO_EGALAX;
122 input_dev->id.product = 0;
123 input_dev->id.version = 0x0001;
124 input_dev->dev.parent = &serio->dev;
125
126 input_set_capability(input_dev, EV_KEY, BTN_TOUCH);
127 input_set_abs_params(input_dev, ABS_X,
128 EGALAX_MIN_XC, EGALAX_MAX_XC, 0, 0);
129 input_set_abs_params(input_dev, ABS_Y,
130 EGALAX_MIN_YC, EGALAX_MAX_YC, 0, 0);
131
132 serio_set_drvdata(serio, egalax);
133
134 error = serio_open(serio, drv);
135 if (error)
136 goto err_reset_drvdata;
137
138 error = input_register_device(input_dev);
139 if (error)
140 goto err_close_serio;
141
142 return 0;
143
144 err_close_serio:
145 serio_close(serio);
146 err_reset_drvdata:
147 serio_set_drvdata(serio, NULL);
148 err_free_mem:
149 input_free_device(input_dev);
150 kfree(egalax);
151 return error;
152 }
153

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki