pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/x11/libXi Add two bug fixes from GIT (see patch headin...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/1dcaf856de7a
branches:  trunk
changeset: 538111:1dcaf856de7a
user:      bjs <bjs%pkgsrc.org@localhost>
date:      Tue Jan 29 03:45:36 2008 +0000

description:
Add two bug fixes from GIT (see patch headings for more info).
Bump rev.

diffstat:

 x11/libXi/Makefile         |   3 +-
 x11/libXi/distinfo         |   4 ++-
 x11/libXi/patches/patch-aa |  18 ++++++++++++++++
 x11/libXi/patches/patch-ab |  49 ++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 72 insertions(+), 2 deletions(-)

diffs (100 lines):

diff -r a69e59b67898 -r 1dcaf856de7a x11/libXi/Makefile
--- a/x11/libXi/Makefile        Tue Jan 29 03:38:34 2008 +0000
+++ b/x11/libXi/Makefile        Tue Jan 29 03:45:36 2008 +0000
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.6 2007/09/21 19:28:47 bjs Exp $
+# $NetBSD: Makefile,v 1.7 2008/01/29 03:45:36 bjs Exp $
 #
 
 DISTNAME=              libXi-1.1.3
+PKGREVISION=           1
 CATEGORIES=            x11 devel
 MASTER_SITES=          http://xorg.freedesktop.org/releases/individual/lib/
 EXTRACT_SUFX=          .tar.bz2
diff -r a69e59b67898 -r 1dcaf856de7a x11/libXi/distinfo
--- a/x11/libXi/distinfo        Tue Jan 29 03:38:34 2008 +0000
+++ b/x11/libXi/distinfo        Tue Jan 29 03:45:36 2008 +0000
@@ -1,5 +1,7 @@
-$NetBSD: distinfo,v 1.7 2007/09/21 20:47:14 joerg Exp $
+$NetBSD: distinfo,v 1.8 2008/01/29 03:45:36 bjs Exp $
 
 SHA1 (libXi-1.1.3.tar.bz2) = 60608bcbebadc5fe0b51b5012e9301eb720988fe
 RMD160 (libXi-1.1.3.tar.bz2) = e6446f28a903eed54eccc5d4df685f9623942a0b
 Size (libXi-1.1.3.tar.bz2) = 248007 bytes
+SHA1 (patch-aa) = 2bf138eb5f8fa4e9602579a6842278a7e5446fc5
+SHA1 (patch-ab) = 169dc342cb2631f10b9390568e9e39c91b595303
diff -r a69e59b67898 -r 1dcaf856de7a x11/libXi/patches/patch-aa
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/x11/libXi/patches/patch-aa        Tue Jan 29 03:45:36 2008 +0000
@@ -0,0 +1,18 @@
+$NetBSD: patch-aa,v 1.3 2008/01/29 03:45:36 bjs Exp $
+
+Coverity #743/744: Returned without freeing storage bufp/savp
+ 
+If either bufp or savp failed to malloc, we returned without freeing 
+the other.  (from GIT)
+
+--- src/XGMotion.c.orig        2007-09-05 12:41:58.000000000 -0400
++++ src/XGMotion.c
+@@ -115,6 +115,8 @@ Time stop;
+     savp = readp = (int *)Xmalloc(size);
+     bufp = (int *)Xmalloc(size2);
+     if (!bufp || !savp) {
++      Xfree(bufp);
++      Xfree(savp);
+       *nEvents = 0;
+       _XEatData(dpy, (unsigned long)size);
+       UnlockDisplay(dpy);
diff -r a69e59b67898 -r 1dcaf856de7a x11/libXi/patches/patch-ab
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/x11/libXi/patches/patch-ab        Tue Jan 29 03:45:36 2008 +0000
@@ -0,0 +1,49 @@
+$NetBSD: patch-ab,v 1.1 2008/01/29 03:45:36 bjs Exp $
+
+GetDeviceControl: calculate the length field correctly.
+ 
+Length field should indicate the length of the struct in bytes, 
+not the length of the pointer to the struct. (from GIT)
+
+--- src/XGetDCtl.c.orig        2007-09-05 12:41:58.000000000 -0400
++++ src/XGetDCtl.c
+@@ -104,6 +104,12 @@ XGetDeviceControl(dpy, dev, control)
+       sav = d;
+       _XRead(dpy, (char *)d, nbytes);
+ 
++        /* In theory, we should just be able to use d->length to get the size.
++         * Turns out that a number of X servers (up to and including server
++         * 1.4) sent the wrong length value down the wire. So to not break
++         * apps that run against older servers, we have to calculate the size
++         * manually.
++         */
+       switch (d->control) {
+       case DEVICE_RESOLUTION:
+       {
+@@ -170,7 +176,7 @@ XGetDeviceControl(dpy, dev, control)
+             XDeviceAbsCalibState *C = (XDeviceAbsCalibState *) Device;
+ 
+             C->control = DEVICE_ABS_CALIB;
+-            C->length = sizeof(C);
++            C->length = sizeof(XDeviceAbsCalibState);
+             C->min_x = c->min_x;
+             C->max_x = c->max_x;
+             C->min_y = c->min_y;
+@@ -188,7 +194,7 @@ XGetDeviceControl(dpy, dev, control)
+             XDeviceAbsAreaState *A = (XDeviceAbsAreaState *) Device;
+ 
+             A->control = DEVICE_ABS_AREA;
+-            A->length = sizeof(A);
++            A->length = sizeof(XDeviceAbsAreaState);
+             A->offset_x = a->offset_x;
+             A->offset_y = a->offset_y;
+             A->width = a->width;
+@@ -204,7 +210,7 @@ XGetDeviceControl(dpy, dev, control)
+             XDeviceCoreState *C = (XDeviceCoreState *) Device;
+ 
+             C->control = DEVICE_CORE;
+-            C->length = sizeof(C);
++            C->length = sizeof(XDeviceCoreState);
+             C->status = c->status;
+             C->iscore = c->iscore;
+ 



Home | Main Index | Thread Index | Old Index