On Sat, Oct 15, 2016 at 02:06:42PM +0200, Niels Ole Salscheider wrote:
> Output parameters must only be modified if there is no error.
> 
> Signed-off-by: Niels Ole Salscheider <niels_...@salscheider-online.de>

see this patch here please
https://patchwork.freedesktop.org/patch/115414/

Cheers,
   Peter

> ---
>  src/XListDev.c | 17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
> 
> diff --git a/src/XListDev.c b/src/XListDev.c
> index b2bad72..f4e37ba 100644
> --- a/src/XListDev.c
> +++ b/src/XListDev.c
> @@ -202,8 +202,8 @@ XListInputDevices(
>       return (XDeviceInfo *) NULL;
>      }
>  
> -    if ((*ndevices = rep.ndevices)) {        /* at least 1 input device */
> -     size = *ndevices * sizeof(XDeviceInfo);
> +    if (rep.ndevices) {                      /* at least 1 input device */
> +     size = rep.ndevices * sizeof(XDeviceInfo);
>       if (rep.length < (INT_MAX >> 2)) {
>           rlen = rep.length << 2;     /* multiply length by 4    */
>           slist = list = Xmalloc(rlen);
> @@ -216,17 +216,17 @@ XListInputDevices(
>       }
>       _XRead(dpy, (char *)list, rlen);
>  
> -     any = (xAnyClassPtr) ((char *)list + (*ndevices * sizeof(xDeviceInfo)));
> +     any = (xAnyClassPtr) ((char *)list + (rep.ndevices * 
> sizeof(xDeviceInfo)));
>       sav_any = any;
>       end = (char *)list + rlen;
> -     for (i = 0; i < *ndevices; i++, list++) {
> +     for (i = 0; i < rep.ndevices; i++, list++) {
>              if(SizeClassInfo(&any, end - (char *)any, 
> (int)list->num_classes, &s))
>                  goto out;
>              size += s;
>       }
>  
>       Nptr = ((unsigned char *)list) + rlen;
> -     for (i = 0, nptr = (unsigned char *)any; i < *ndevices; i++) {
> +     for (i = 0, nptr = (unsigned char *)any; i < rep.ndevices; i++) {
>           if (nptr >= Nptr)
>               goto out;
>           size += *nptr + 1;
> @@ -242,10 +242,10 @@ XListInputDevices(
>       }
>       sclist = clist;
>       Any = (XAnyClassPtr) ((char *)clist +
> -                           (*ndevices * sizeof(XDeviceInfo)));
> +                           (rep.ndevices * sizeof(XDeviceInfo)));
>       list = slist;
>       any = sav_any;
> -     for (i = 0; i < *ndevices; i++, list++, clist++) {
> +     for (i = 0; i < rep.ndevices; i++, list++, clist++) {
>           clist->type = list->type;
>           clist->id = list->id;
>           clist->use = list->use;
> @@ -258,7 +258,7 @@ XListInputDevices(
>       clist = sclist;
>       nptr = (unsigned char *)any;
>       Nptr = (unsigned char *)Any;
> -     for (i = 0; i < *ndevices; i++, clist++) {
> +     for (i = 0; i < rep.ndevices; i++, clist++) {
>           clist->name = (char *)Nptr;
>           memcpy(Nptr, nptr + 1, *nptr);
>           Nptr += (*nptr);
> @@ -266,6 +266,7 @@ XListInputDevices(
>           nptr += (*nptr + 1);
>       }
>      }
> +    *ndevices = rep.ndevices;
>  
>    out:
>      XFree((char *)slist);
> -- 
> 2.10.1
> 
_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to