summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/usb.c
diff options
context:
space:
mode:
authorstefan <stefan@openbsd.org>2016-03-03 18:13:24 +0000
committerstefan <stefan@openbsd.org>2016-03-03 18:13:24 +0000
commita69fffe69bd42fd29454ce48f07b77f9258022ec (patch)
tree22ee5310af56237c9137f0d6dc2bd4d1e4058987 /sys/dev/usb/usb.c
parentRemove WSDISPLAY_COMPAT_SYSCONS. We no longer run FreeBSD binary X11 (diff)
downloadwireguard-openbsd-a69fffe69bd42fd29454ce48f07b77f9258022ec.tar.xz
wireguard-openbsd-a69fffe69bd42fd29454ce48f07b77f9258022ec.zip
Convert uiomovei to uiomove. Fixes a few integer truncations along the
way. ok natano@
Diffstat (limited to 'sys/dev/usb/usb.c')
-rw-r--r--sys/dev/usb/usb.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/sys/dev/usb/usb.c b/sys/dev/usb/usb.c
index 7f991591620..732ecfdbb27 100644
--- a/sys/dev/usb/usb.c
+++ b/sys/dev/usb/usb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: usb.c,v 1.109 2016/01/22 13:31:47 bluhm Exp $ */
+/* $OpenBSD: usb.c,v 1.110 2016/03/03 18:13:24 stefan Exp $ */
/* $NetBSD: usb.c,v 1.77 2003/01/01 00:10:26 thorpej Exp $ */
/*
@@ -610,7 +610,7 @@ usbioctl(dev_t devt, u_long cmd, caddr_t data, int flag, struct proc *p)
case USB_REQUEST:
{
struct usb_ctl_request *ur = (void *)data;
- int len = UGETW(ur->ucr_request.wLength);
+ size_t len = UGETW(ur->ucr_request.wLength);
struct iovec iov;
struct uio uio;
void *ptr = 0;
@@ -621,7 +621,7 @@ usbioctl(dev_t devt, u_long cmd, caddr_t data, int flag, struct proc *p)
if (!(flag & FWRITE))
return (EBADF);
- DPRINTF(("usbioctl: USB_REQUEST addr=%d len=%d\n", addr, len));
+ DPRINTF(("usbioctl: USB_REQUEST addr=%d len=%zu\n", addr, len));
/* Avoid requests that would damage the bus integrity. */
if ((ur->ucr_request.bmRequestType == UT_WRITE_DEVICE &&
ur->ucr_request.bRequest == UR_SET_ADDRESS) ||
@@ -631,7 +631,7 @@ usbioctl(dev_t devt, u_long cmd, caddr_t data, int flag, struct proc *p)
ur->ucr_request.bRequest == UR_SET_INTERFACE))
return (EINVAL);
- if (len < 0 || len > 32767)
+ if (len > 32767)
return (EINVAL);
if (addr < 0 || addr >= USB_MAX_DEVICES)
return (EINVAL);
@@ -651,7 +651,7 @@ usbioctl(dev_t devt, u_long cmd, caddr_t data, int flag, struct proc *p)
uio.uio_procp = p;
ptr = malloc(len, M_TEMP, M_WAITOK);
if (uio.uio_rw == UIO_WRITE) {
- error = uiomovei(ptr, len, &uio);
+ error = uiomove(ptr, len, &uio);
if (error)
goto ret;
}
@@ -668,7 +668,7 @@ usbioctl(dev_t devt, u_long cmd, caddr_t data, int flag, struct proc *p)
len = ur->ucr_actlen;
if (len != 0) {
if (uio.uio_rw == UIO_READ) {
- error = uiomovei(ptr, len, &uio);
+ error = uiomove(ptr, len, &uio);
if (error)
goto ret;
}
@@ -766,7 +766,8 @@ usbioctl(dev_t devt, u_long cmd, caddr_t data, int flag, struct proc *p)
usb_config_descriptor_t *cdesc;
struct iovec iov;
struct uio uio;
- int len, error;
+ size_t len;
+ int error;
if (addr < 1 || addr >= USB_MAX_DEVICES)
return (EINVAL);
@@ -797,7 +798,7 @@ usbioctl(dev_t devt, u_long cmd, caddr_t data, int flag, struct proc *p)
uio.uio_segflg = UIO_USERSPACE;
uio.uio_rw = UIO_READ;
uio.uio_procp = p;
- error = uiomovei((void *)cdesc, len, &uio);
+ error = uiomove((void *)cdesc, len, &uio);
free(cdesc, M_TEMP, 0);
return (error);
}