summaryrefslogtreecommitdiff
path: root/extra/libxcb
diff options
context:
space:
mode:
authorroot <root@rshg047.dnsready.net>2011-05-05 19:02:44 +0000
committerroot <root@rshg047.dnsready.net>2011-05-05 19:02:44 +0000
commitef61aa5a9cead170fa18dba44609c32bbf18306a (patch)
tree82af53ec1018f58868b80cdf680a9c4ec5df1538 /extra/libxcb
parentab1410d33401cf1fc4a384bb0b2d9901c8fe8d14 (diff)
Thu May 5 19:02:44 UTC 2011
Diffstat (limited to 'extra/libxcb')
-rw-r--r--extra/libxcb/PKGBUILD9
-rw-r--r--extra/libxcb/xcb_auth-fix-memory-leak.patch38
2 files changed, 44 insertions, 3 deletions
diff --git a/extra/libxcb/PKGBUILD b/extra/libxcb/PKGBUILD
index 1db9d2adb..31a5183f5 100644
--- a/extra/libxcb/PKGBUILD
+++ b/extra/libxcb/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 101448 2010-11-29 09:38:40Z jgc $
+# $Id: PKGBUILD 122471 2011-05-04 08:36:03Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
pkgname=libxcb
pkgver=1.7
-pkgrel=1
+pkgrel=2
pkgdesc="X11 client-side library"
arch=(i686 x86_64)
url="http://xcb.freedesktop.org/"
@@ -14,13 +14,16 @@ conflicts=('libx11<1.1.99.2')
options=('!libtool')
license=('custom')
source=(${url}/dist/${pkgname}-${pkgver}.tar.bz2
+ xcb_auth-fix-memory-leak.patch
libxcb-1.1-no-pthread-stubs.patch)
sha1sums=('7540f0587907bce421914f0ddb813810cb2f36f8'
- '3455e84642283bc91c8313af319002a20bbcbdf4')
+ '0c9246fd2ea270bfa06cb8ef93df2f8227d83c2a'
+ '3455e84642283bc91c8313af319002a20bbcbdf4')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
patch -Np1 -i "${srcdir}/libxcb-1.1-no-pthread-stubs.patch"
+ patch -Np1 -i "${srcdir}/xcb_auth-fix-memory-leak.patch"
libtoolize --force --copy
aclocal
autoconf
diff --git a/extra/libxcb/xcb_auth-fix-memory-leak.patch b/extra/libxcb/xcb_auth-fix-memory-leak.patch
new file mode 100644
index 000000000..d1000913a
--- /dev/null
+++ b/extra/libxcb/xcb_auth-fix-memory-leak.patch
@@ -0,0 +1,38 @@
+From 5755582444ad0ba79e661ab3173cc38e9e588d83 Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Thu, 11 Nov 2010 01:49:41 +0000
+Subject: xcb_auth: Fix memory leak in _xcb_get_auth_info.
+
+If the initial get_peer_sock_name(getpeername ...) succeeds, the
+pointer to allocated memory is overwritten by the later call to
+get_peer_sock_name(getsockname ...). Fix that up by freeing
+the allocated memory before overwriting the pointer.
+
+Signed-off-by: Nick Bowler <nbowler@draconx.ca>
+Signed-off-by: Julien Danjou <julien@danjou.info>
+---
+diff --git a/src/xcb_auth.c b/src/xcb_auth.c
+index 1af27fc..4839b78 100644
+--- a/src/xcb_auth.c
++++ b/src/xcb_auth.c
+@@ -327,10 +327,15 @@ int _xcb_get_auth_info(int fd, xcb_auth_info_t *info, int display)
+ if (!info->namelen)
+ goto no_auth; /* out of memory */
+
+- if (!gotsockname && (sockname = get_peer_sock_name(getsockname, fd)) == NULL)
++ if (!gotsockname)
+ {
+- free(info->name);
+- goto no_auth; /* can only authenticate sockets */
++ free(sockname);
++
++ if ((sockname = get_peer_sock_name(getsockname, fd)) == NULL)
++ {
++ free(info->name);
++ goto no_auth; /* can only authenticate sockets */
++ }
+ }
+
+ ret = compute_auth(info, authptr, sockname);
+--
+cgit v0.8.3-6-g21f6