On Sat, Oct 08, 2016 at 11:35:57AM +0200, Niels Ole Salscheider wrote: > v2: Fix formating issues
tbh, I usually prefer not to touch any parameters on errors. This should better be fixed in the man page to specify the exact behaviour. Cheers, Peter > Signed-off-by: Niels Ole Salscheider <niels_...@salscheider-online.de> > --- > src/XListDev.c | 17 +++++++++++++---- > 1 file changed, 13 insertions(+), 4 deletions(-) > > diff --git a/src/XListDev.c b/src/XListDev.c > index d0c6bf2..f47ad97 100644 > --- a/src/XListDev.c > +++ b/src/XListDev.c > @@ -189,8 +189,10 @@ XListInputDevices( > XExtDisplayInfo *info = XInput_find_display(dpy); > > LockDisplay(dpy); > - if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) > + if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) { > + *ndevices = 0; > return ((XDeviceInfo *) NULL); > + } > > GetReq(ListInputDevices, req); > req->reqType = info->codes->major_opcode; > @@ -199,6 +201,7 @@ XListInputDevices( > if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) { > UnlockDisplay(dpy); > SyncHandle(); > + *ndevices = 0; > return (XDeviceInfo *) NULL; > } > > @@ -212,6 +215,7 @@ XListInputDevices( > _XEatDataWords(dpy, rep.length); > UnlockDisplay(dpy); > SyncHandle(); > + *ndevices = 0; > return (XDeviceInfo *) NULL; > } > _XRead(dpy, (char *)list, rlen); > @@ -220,15 +224,19 @@ XListInputDevices( > sav_any = any; > end = (char *)list + rlen; > for (i = 0; i < *ndevices; i++, list++) { > - if(SizeClassInfo(&any, end - (char *)any, > (int)list->num_classes, &s)) > - goto out; > + if(SizeClassInfo(&any, end - (char *)any, > (int)list->num_classes, &s)) { > + *ndevices = 0; > + goto out; > + } > size += s; > } > > Nptr = ((unsigned char *)list) + rlen; > for (i = 0, nptr = (unsigned char *)any; i < *ndevices; i++) { > - if (nptr >= Nptr) > + if (nptr >= Nptr) { > + *ndevices = 0; > goto out; > + } > size += *nptr + 1; > nptr += (*nptr + 1); > } > @@ -238,6 +246,7 @@ XListInputDevices( > XFree((char *)slist); > UnlockDisplay(dpy); > SyncHandle(); > + *ndevices = 0; > return (XDeviceInfo *) NULL; > } > sclist = clist; > -- > 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