Martin Natano wrote:
> Below the uiomove() conversion for dev/wscons/wsevent.c. 'cnt' could
> as well be a size_t, but using u_int makes clear, that it will never
> exceed UINT_MAX, and that 'ev->get = cnt;' won't overflow.

Makes sense to me.

ok?
 
> Index: dev/wscons/wsevent.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/wscons/wsevent.c,v
> retrieving revision 1.14
> diff -u -p -u -r1.14 wsevent.c
> --- dev/wscons/wsevent.c      10 Sep 2015 18:14:52 -0000      1.14
> +++ dev/wscons/wsevent.c      9 Jan 2016 08:35:55 -0000
> @@ -136,7 +136,9 @@ wsevent_fini(struct wseventvar *ev)
>  int
>  wsevent_read(struct wseventvar *ev, struct uio *uio, int flags)
>  {
> -     int s, n, cnt, error;
> +     int s, error;
> +     u_int cnt;
> +     size_t n;
>  
>       /*
>        * Make sure we can return at least 1.
> @@ -169,7 +171,7 @@ wsevent_read(struct wseventvar *ev, stru
>       n = howmany(uio->uio_resid, sizeof(struct wscons_event));
>       if (cnt > n)
>               cnt = n;
> -     error = uiomovei((caddr_t)&ev->q[ev->get],
> +     error = uiomove((caddr_t)&ev->q[ev->get],
>           cnt * sizeof(struct wscons_event), uio);
>       n -= cnt;
>       /*
> @@ -182,7 +184,7 @@ wsevent_read(struct wseventvar *ev, stru
>               return (error);
>       if (cnt > n)
>               cnt = n;
> -     error = uiomovei((caddr_t)&ev->q[0],
> +     error = uiomove((caddr_t)&ev->q[0],
>           cnt * sizeof(struct wscons_event), uio);
>       ev->get = cnt;
>       return (error);
> 
> cheers,
> natano
> 

Reply via email to