]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
HID: uhid: use strlcpy() instead of strncpy()
authorXiongfeng Wang <xiongfeng.wang@linaro.org>
Tue, 9 Jan 2018 12:23:32 +0000 (20:23 +0800)
committerJiri Kosina <jkosina@suse.cz>
Fri, 16 Feb 2018 12:36:50 +0000 (13:36 +0100)
gcc-8 reports

drivers/hid/uhid.c: In function 'uhid_dev_create2':
./include/linux/string.h:245:9: warning: '__builtin_strncpy' output may
be truncated copying 127 bytes from a string of length 127
[-Wstringop-truncation]

The compiler require that the input param 'len' of strncpy() should be
greater than the length of the src string, so that '\0' is copied as
well. We can just use strlcpy() to avoid this warning.

Signed-off-by: Xiongfeng Wang <xiongfeng.wang@linaro.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/uhid.c

index fc43850a155eeb5633b638c80deb31044d9cb99c..39b60e53118339b37908e4bb034ff90e89eaa128 100644 (file)
@@ -496,12 +496,12 @@ static int uhid_dev_create2(struct uhid_device *uhid,
                goto err_free;
        }
 
-       len = min(sizeof(hid->name), sizeof(ev->u.create2.name)) - 1;
-       strncpy(hid->name, ev->u.create2.name, len);
-       len = min(sizeof(hid->phys), sizeof(ev->u.create2.phys)) - 1;
-       strncpy(hid->phys, ev->u.create2.phys, len);
-       len = min(sizeof(hid->uniq), sizeof(ev->u.create2.uniq)) - 1;
-       strncpy(hid->uniq, ev->u.create2.uniq, len);
+       len = min(sizeof(hid->name), sizeof(ev->u.create2.name));
+       strlcpy(hid->name, ev->u.create2.name, len);
+       len = min(sizeof(hid->phys), sizeof(ev->u.create2.phys));
+       strlcpy(hid->phys, ev->u.create2.phys, len);
+       len = min(sizeof(hid->uniq), sizeof(ev->u.create2.uniq));
+       strlcpy(hid->uniq, ev->u.create2.uniq, len);
 
        hid->ll_driver = &uhid_hid_driver;
        hid->bus = ev->u.create2.bus;