diff options
| author | Michael Gmelin <grembo@FreeBSD.org> | 2022-05-17 09:37:21 +0000 |
|---|---|---|
| committer | Michael Gmelin <grembo@FreeBSD.org> | 2022-05-18 10:12:19 +0000 |
| commit | ed87ff4e95d92033d161e93ec1a35ce001638bae (patch) | |
| tree | ca1a8e361aa4dd84d9e81a8a215f1781f5f8201b /sys/dev/hid | |
| parent | f8f1e9cd1ceeac4d3a9d2f703f937f67148bd513 (diff) | |
Diffstat (limited to 'sys/dev/hid')
| -rw-r--r-- | sys/dev/hid/hidraw.c | 7 |
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); } |
