[arch-commits] Commit in libxi/trunk (PKGBUILD fix-gtk2-segfault.patch)

Andreas Radke andyrtr at archlinux.org
Fri Oct 28 18:04:06 UTC 2016


    Date: Friday, October 28, 2016 @ 18:04:05
  Author: andyrtr
Revision: 279405

upgpkg: libxi 1.7.8-1

upstream update 1.7.8

Modified:
  libxi/trunk/PKGBUILD
Deleted:
  libxi/trunk/fix-gtk2-segfault.patch

-------------------------+
 PKGBUILD                |   18 ---
 fix-gtk2-segfault.patch |  241 ----------------------------------------------
 2 files changed, 5 insertions(+), 254 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2016-10-28 17:59:54 UTC (rev 279404)
+++ PKGBUILD	2016-10-28 18:04:05 UTC (rev 279405)
@@ -3,8 +3,8 @@
 # Maintainer: Jan de Groot <jgc at archlinux.org>
 
 pkgname=libxi
-pkgver=1.7.7
-pkgrel=2
+pkgver=1.7.8
+pkgrel=1
 pkgdesc="X11 Input extension library"
 arch=('i686' 'x86_64')
 url="http://xorg.freedesktop.org"
@@ -11,20 +11,12 @@
 depends=('libxext' 'inputproto')
 makedepends=('pkgconfig' 'xorg-util-macros' 'libxfixes' 'automake')
 license=('custom')
-source=(${url}/releases/individual/lib/libXi-${pkgver}.tar.bz2{,.sig}
-        fix-gtk2-segfault.patch)
-sha256sums=('996f834fa57b9b33ba36690f6f5c6a29320bc8213022943912462d8015b1e030'
-            'SKIP'
-            '34ac1854b6bb14cbb048ddbd20cce7a4b2ad1e8ffa6b116aa20b0dfc56655c4b')
+source=(${url}/releases/individual/lib/libXi-${pkgver}.tar.bz2{,.sig})
+sha256sums=('d8f2fa8d53141c41ff521627df9b2fa9c05f6f142fd9881152bab36549ac27bb'
+            'SKIP')
 validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer
 validpgpkeys+=('C41C985FDCF1E5364576638B687393EE37D128F8') # Matthieu Herrb <matthieu.herrb at laas.fr>
 
-prepare() {
-  cd libXi-${pkgver}
-  #fix FS#51298
-  patch -Np1 -i ../fix-gtk2-segfault.patch
-}
-
 build() {
   cd libXi-${pkgver}
   ./configure --prefix=/usr --sysconfdir=/etc --disable-static

Deleted: fix-gtk2-segfault.patch
===================================================================
--- fix-gtk2-segfault.patch	2016-10-28 17:59:54 UTC (rev 279404)
+++ fix-gtk2-segfault.patch	2016-10-28 18:04:05 UTC (rev 279405)
@@ -1,241 +0,0 @@
-From patchwork Thu Oct 13 03:58:22 2016
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2,libXi,1/2] SizeClassInfo can return 0 even without an error
-From: Peter Hutterer <peter.hutterer at who-t.net>
-X-Patchwork-Id: 115413
-Message-Id: <1476331103-24072-1-git-send-email-peter.hutterer at who-t.net>
-To: xorg-devel at lists.freedesktop.org
-Cc: Niels Ole Salscheider <niels_ole at salscheider-online.de>
-Date: Thu, 13 Oct 2016 13:58:22 +1000
-
-From: Niels Ole Salscheider <niels_ole at salscheider-online.de>
-
-Catch the error case separately. Commit 19a9cd607d added length checking to
-SizeClassInfo but re-used the return value of 0 for an error. A device without
-classes (as is initialized by xf86-input-libinput for tablets) can
-legitimately return 0 and erroneously triggers an error.
-Fix this by using a separate value for the error.
-
-Reproducible by calling XListInputDevices() with a tablet attached.
-
-This fixes a regression introduced in commit 19a9cd607d.
-
-Signed-off-by: Niels Ole Salscheider <niels_ole at salscheider-online.de>
-Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
----
-Changes to v1:
-- don't touch *size until we're sure.
-- expand commit message
-
-Niels:
-I left you as author and your signed-off-by since it's essentially your
-patch with a minor change.
-
- src/XListDev.c | 24 +++++++++++++-----------
- 1 file changed, 13 insertions(+), 11 deletions(-)
-
-diff --git a/src/XListDev.c b/src/XListDev.c
-index f850cd0..e4bd3d5 100644
---- a/src/XListDev.c
-+++ b/src/XListDev.c
-@@ -73,27 +73,28 @@ static int pad_to_xid(int base_size)
-     return ((base_size + padsize - 1)/padsize) * padsize;
- }
- 
--static size_t
--SizeClassInfo(xAnyClassPtr *any, size_t len, int num_classes)
-+static int
-+SizeClassInfo(xAnyClassPtr *any, size_t len, int num_classes, size_t *size)
- {
--    int size = 0;
-     int j;
-+    size_t sz = 0;
-+
-     for (j = 0; j < num_classes; j++) {
-         switch ((*any)->class) {
-             case KeyClass:
--                size += pad_to_xid(sizeof(XKeyInfo));
-+                sz += pad_to_xid(sizeof(XKeyInfo));
-                 break;
-             case ButtonClass:
--                size += pad_to_xid(sizeof(XButtonInfo));
-+                sz += pad_to_xid(sizeof(XButtonInfo));
-                 break;
-             case ValuatorClass:
-                 {
-                     xValuatorInfoPtr v;
- 
-                     if (len < sizeof(v))
--                        return 0;
-+                        return 1;
-                     v = (xValuatorInfoPtr) *any;
--                    size += pad_to_xid(sizeof(XValuatorInfo) +
-+                    sz += pad_to_xid(sizeof(XValuatorInfo) +
-                         (v->num_axes * sizeof(XAxisInfo)));
-                     break;
-                 }
-@@ -101,11 +102,13 @@ SizeClassInfo(xAnyClassPtr *any, size_t len, int num_classes)
-                 break;
-         }
-         if ((*any)->length > len)
--            return 0;
-+            return 1;
-         *any = (xAnyClassPtr) ((char *)(*any) + (*any)->length);
-     }
- 
--    return size;
-+    *size = sz;
-+
-+    return 0;
- }
- 
- static void
-@@ -220,8 +223,7 @@ XListInputDevices(
- 	sav_any = any;
- 	end = (char *)list + rlen;
- 	for (i = 0; i < *ndevices; i++, list++) {
--            s = SizeClassInfo(&any, end - (char *)any, (int)list->num_classes);
--            if (!s)
-+            if(SizeClassInfo(&any, end - (char *)any, (int)list->num_classes, &s))
-                 goto out;
-             size += s;
- 	}
-
-From patchwork Thu Oct 13 03:58:23 2016
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2, libXi,
- 2/2] XListInputDevices: don't touch ndevices in case of error
-From: Peter Hutterer <peter.hutterer at who-t.net>
-X-Patchwork-Id: 115414
-Message-Id: <1476331103-24072-2-git-send-email-peter.hutterer at who-t.net>
-To: xorg-devel at lists.freedesktop.org
-Cc: Niels Ole Salscheider <niels_ole at salscheider-online.de>
-Date: Thu, 13 Oct 2016 13:58:23 +1000
-
-We used to always set *ndevices to the number of devices returned by the
-server. This magically worked because we pretty much never returned an error
-except on faulty server or library implementations. With 19a9cd60 we now have
-more chances of getting an error, so the polite thing is to just leave *ndevices
-alone when we error out.
-
-Document it as such in the man page, just in case someone accidentally reads
-it.
-
-Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
-CC: Niels Ole Salscheider <niels_ole at salscheider-online.de>
----
-Changes to v1:
-- Niels' first patch set ndevices to 0, this one leaves it untouched
-
- man/XListInputDevices.txt | 12 ++++++++++--
- src/XListDev.c            | 21 ++++++++++++---------
- 2 files changed, 22 insertions(+), 11 deletions(-)
-
-diff --git a/man/XListInputDevices.txt b/man/XListInputDevices.txt
-index 276660d..450f377 100644
---- a/man/XListInputDevices.txt
-+++ b/man/XListInputDevices.txt
-@@ -220,5 +220,13 @@ DESCRIPTION
-    Floating. If the device is a master device, attached specifies
-    the device ID of the master device this device is paired with.
- 
--   To free the XDeviceInfo array created by XListInputDevices, use
--   XFreeDeviceList.
-+RETURN VALUE
-+------------
-+
-+   XListInputDevices returns a pointer to an array of XDeviceInfo
-+   structs and sets ndevices_return to the number of elements in
-+   that array. To free the XDeviceInfo array created by
-+   XListInputDevices, use XFreeDeviceList.
-+
-+   On error, XListInputDevices returns NULL and ndevices_return is
-+   left unmodified.
-diff --git a/src/XListDev.c b/src/XListDev.c
-index e4bd3d5..dda6011 100644
---- a/src/XListDev.c
-+++ b/src/XListDev.c
-@@ -175,7 +175,7 @@ ParseClassInfo(xAnyClassPtr *any, XAnyClassPtr *Any, int num_classes)
- XDeviceInfo *
- XListInputDevices(
-     register Display	*dpy,
--    int			*ndevices)
-+    int			*ndevices_return)
- {
-     size_t s, size;
-     xListInputDevicesReq *req;
-@@ -190,6 +190,7 @@ XListInputDevices(
-     int i;
-     unsigned long rlen;
-     XExtDisplayInfo *info = XInput_find_display(dpy);
-+    int ndevices;
- 
-     LockDisplay(dpy);
-     if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1)
-@@ -205,8 +206,8 @@ XListInputDevices(
- 	return (XDeviceInfo *) NULL;
-     }
- 
--    if ((*ndevices = rep.ndevices)) {	/* at least 1 input device */
--	size = *ndevices * sizeof(XDeviceInfo);
-+    if ((ndevices = rep.ndevices)) {	/* at least 1 input device */
-+	size = ndevices * sizeof(XDeviceInfo);
- 	if (rep.length < (INT_MAX >> 2)) {
- 	    rlen = rep.length << 2;	/* multiply length by 4    */
- 	    slist = list = Xmalloc(rlen);
-@@ -219,17 +220,17 @@ XListInputDevices(
- 	}
- 	_XRead(dpy, (char *)list, rlen);
- 
--	any = (xAnyClassPtr) ((char *)list + (*ndevices * sizeof(xDeviceInfo)));
-+	any = (xAnyClassPtr) ((char *)list + (ndevices * sizeof(xDeviceInfo)));
- 	sav_any = any;
- 	end = (char *)list + rlen;
--	for (i = 0; i < *ndevices; i++, list++) {
-+	for (i = 0; i < 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 < ndevices; i++) {
- 	    if (nptr >= Nptr)
- 		goto out;
- 	    size += *nptr + 1;
-@@ -245,10 +246,10 @@ XListInputDevices(
- 	}
- 	sclist = clist;
- 	Any = (XAnyClassPtr) ((char *)clist +
--			      (*ndevices * sizeof(XDeviceInfo)));
-+			      (ndevices * sizeof(XDeviceInfo)));
- 	list = slist;
- 	any = sav_any;
--	for (i = 0; i < *ndevices; i++, list++, clist++) {
-+	for (i = 0; i < ndevices; i++, list++, clist++) {
- 	    clist->type = list->type;
- 	    clist->id = list->id;
- 	    clist->use = list->use;
-@@ -261,7 +262,7 @@ XListInputDevices(
- 	clist = sclist;
- 	nptr = (unsigned char *)any;
- 	Nptr = (unsigned char *)Any;
--	for (i = 0; i < *ndevices; i++, clist++) {
-+	for (i = 0; i < ndevices; i++, clist++) {
- 	    clist->name = (char *)Nptr;
- 	    memcpy(Nptr, nptr + 1, *nptr);
- 	    Nptr += (*nptr);
-@@ -270,6 +271,8 @@ XListInputDevices(
- 	}
-     }
- 
-+    *ndevices_return = ndevices;
-+
-   out:
-     XFree((char *)slist);
-     UnlockDisplay(dpy);



More information about the arch-commits mailing list