diff options
author | bjs <bjs> | 2008-01-29 03:45:36 +0000 |
---|---|---|
committer | bjs <bjs> | 2008-01-29 03:45:36 +0000 |
commit | 1e6847809a62df038969703c5a2a8ab2a3138ada (patch) | |
tree | 0fa2ad0acef3abcabc4088a6c6e046b8d9c13b91 /x11/libXi | |
parent | 4a3332541088103884921acd4e614031ca1b614d (diff) | |
download | pkgsrc-1e6847809a62df038969703c5a2a8ab2a3138ada.tar.gz |
Add two bug fixes from GIT (see patch headings for more info).
Bump rev.
Diffstat (limited to 'x11/libXi')
-rw-r--r-- | x11/libXi/Makefile | 3 | ||||
-rw-r--r-- | x11/libXi/distinfo | 4 | ||||
-rw-r--r-- | x11/libXi/patches/patch-aa | 18 | ||||
-rw-r--r-- | x11/libXi/patches/patch-ab | 49 |
4 files changed, 72 insertions, 2 deletions
diff --git a/x11/libXi/Makefile b/x11/libXi/Makefile index 4d4b9003fc6..39ae3592303 100644 --- a/x11/libXi/Makefile +++ b/x11/libXi/Makefile @@ -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 --git a/x11/libXi/distinfo b/x11/libXi/distinfo index e5606db1db6..ac90c680910 100644 --- a/x11/libXi/distinfo +++ b/x11/libXi/distinfo @@ -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 --git a/x11/libXi/patches/patch-aa b/x11/libXi/patches/patch-aa new file mode 100644 index 00000000000..cc9ae47cbbb --- /dev/null +++ b/x11/libXi/patches/patch-aa @@ -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 --git a/x11/libXi/patches/patch-ab b/x11/libXi/patches/patch-ab new file mode 100644 index 00000000000..875840d02d9 --- /dev/null +++ b/x11/libXi/patches/patch-ab @@ -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; + |