aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/hid
diff options
context:
space:
mode:
authorMichael Gmelin <grembo@FreeBSD.org>2022-05-17 09:37:21 +0000
committerMichael Gmelin <grembo@FreeBSD.org>2022-05-18 10:12:19 +0000
commited87ff4e95d92033d161e93ec1a35ce001638bae (patch)
treeca1a8e361aa4dd84d9e81a8a215f1781f5f8201b /sys/dev/hid
parentf8f1e9cd1ceeac4d3a9d2f703f937f67148bd513 (diff)
Diffstat (limited to 'sys/dev/hid')
-rw-r--r--sys/dev/hid/hidraw.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/dev/hid/hidraw.c b/sys/dev/hid/hidraw.c
index c8e36a186aaf..8964e31f7bba 100644
--- a/sys/dev/hid/hidraw.c
+++ b/sys/dev/hid/hidraw.c
@@ -569,6 +569,7 @@ hidraw_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag,
struct hidraw_gen_descriptor *hgd;
struct hidraw_report_descriptor *hrd;
struct hidraw_devinfo *hdi;
+ const char *devname;
uint32_t size;
int id, len;
int error = 0;
@@ -825,10 +826,13 @@ hidraw_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag,
switch (IOCBASECMD(cmd)) {
case HIDIOCGRAWNAME(0):
strlcpy(addr, sc->sc_hw->name, len);
+ td->td_retval[0] = min(strlen(sc->sc_hw->name) + 1, len);
return (0);
case HIDIOCGRAWPHYS(0):
- strlcpy(addr, device_get_nameunit(sc->sc_dev), len);
+ devname = device_get_nameunit(sc->sc_dev);
+ strlcpy(addr, devname, len);
+ td->td_retval[0] = min(strlen(devname) + 1, len);
return (0);
case HIDIOCSFEATURE(0):
@@ -859,6 +863,7 @@ hidraw_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag,
case HIDIOCGRAWUNIQ(0):
strlcpy(addr, sc->sc_hw->serial, len);
+ td->td_retval[0] = min(strlen(sc->sc_hw->serial) + 1, len);
return (0);
}