libX11 1.6.5

This commit is contained in:
Adam Jackson 2017-04-26 11:08:14 -04:00
parent 5257e43291
commit c22400edc5
6 changed files with 8 additions and 190 deletions

1
.gitignore vendored
View File

@ -16,3 +16,4 @@ libX11-1.3.99.901.tar.bz2
/libX11-1.6.2.tar.bz2
/libX11-1.6.3.tar.bz2
/libX11-1.6.4.tar.bz2
/libX11-1.6.5.tar.bz2

View File

@ -1,87 +0,0 @@
From 7f8f9a36ef901f31279c385caf960a22daeb33fe Mon Sep 17 00:00:00 2001
From: "Owen W. Taylor" <otaylor@fishsoup.net>
Date: Fri, 9 May 2014 18:21:05 -0400
Subject: [PATCH] Fix XNextRequest() after direct usage of XCB
When XCB owns the X socket, dpy->request is not updated, so
NextRequest() and XNextRequest() return the wrong value. There's
nothing we can do to fix NextRequest() while retaining ABI compat,
but change XNextRequest() to grab the socket back from XCB,
updating dpy->request.
Signed-off-by: Owen W. Taylor <otaylor@fishsoup.net>
Reviewed-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
src/Macros.c | 14 +++++++++++++-
src/Xxcbint.h | 2 ++
src/xcb_io.c | 11 +++++++++++
3 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/src/Macros.c b/src/Macros.c
index cfc083a..394a764 100644
--- a/src/Macros.c
+++ b/src/Macros.c
@@ -30,6 +30,7 @@ in this Software without prior written authorization from The Open Group.
#include "Xlibint.h"
#define XUTIL_DEFINE_FUNCTIONS
#include "Xutil.h"
+#include "Xxcbint.h"
/*
* This file makes full definitions of routines for each macro.
@@ -135,9 +136,20 @@ int XBitmapPad(Display *dpy) { return (BitmapPad(dpy)); }
int XImageByteOrder(Display *dpy) { return (ImageByteOrder(dpy)); }
+/* XNextRequest() differs from the rest of the functions here because it is
+ * no longer a macro wrapper - when libX11 is being used mixed together
+ * with direct use of xcb, the next request field of the Display structure will
+ * not be updated. We can't fix the NextRequest() macro in any easy way,
+ * but we can at least make XNextRequest() do the right thing.
+ */
unsigned long XNextRequest(Display *dpy)
{
- return (NextRequest(dpy));
+ unsigned long next_request;
+ LockDisplay(dpy);
+ next_request = _XNextRequest(dpy);
+ UnlockDisplay(dpy);
+
+ return next_request;
}
unsigned long XLastKnownRequestProcessed(Display *dpy)
diff --git a/src/Xxcbint.h b/src/Xxcbint.h
index a8c9a67..bf41c23 100644
--- a/src/Xxcbint.h
+++ b/src/Xxcbint.h
@@ -46,4 +46,6 @@ typedef struct _X11XCBPrivate {
int _XConnectXCB(Display *dpy, _Xconst char *display, int *screenp);
void _XFreeX11XCBStructure(Display *dpy);
+unsigned long _XNextRequest(Display *dpy);
+
#endif /* XXCBINT_H */
diff --git a/src/xcb_io.c b/src/xcb_io.c
index 727c6c7..5987329 100644
--- a/src/xcb_io.c
+++ b/src/xcb_io.c
@@ -774,3 +774,14 @@ void _XEatDataWords(Display *dpy, unsigned long n)
dpy->xcb->reply_consumed = dpy->xcb->reply_length;
_XFreeReplyData(dpy, False);
}
+
+unsigned long
+_XNextRequest(Display *dpy)
+{
+ /* This will update dpy->request. The assumption is that the next thing
+ * that the application will do is make a request so there's little
+ * overhead.
+ */
+ require_socket(dpy);
+ return NextRequest(dpy);
+}
--
2.0.0

View File

@ -1,58 +0,0 @@
From c74b070f2712c95f0db7c320a10232b0e5c83049 Mon Sep 17 00:00:00 2001
From: Julien Cristau <jcristau@debian.org>
Date: Sat, 7 Jan 2017 16:20:31 +0100
Subject: [PATCH libX11] Fix wrong Xfree in XListFonts failure path
'ch' gets moved inside the allocated buffer as we're looping through
fonts, so keep a reference to the start of the buffer so we can pass
that to Xfree in the failure case.
Fixes: commit 20a3f99eba5001925b8b313da3accb7900eb1927 "Plug a memory leak"
Signed-off-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
src/FontNames.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/FontNames.c b/src/FontNames.c
index 3e23b5f..9ffdfd2 100644
--- a/src/FontNames.c
+++ b/src/FontNames.c
@@ -43,6 +43,7 @@ int *actualCount) /* RETURN */
register int length;
char **flist = NULL;
char *ch = NULL;
+ char *chstart;
char *chend;
int count = 0;
xListFontsReply rep;
@@ -86,6 +87,7 @@ int *actualCount) /* RETURN */
/*
* unpack into null terminated strings.
*/
+ chstart = ch;
chend = ch + (rlen + 1);
length = *(unsigned char *)ch;
*ch = 1; /* make sure it is non-zero for XFreeFontNames */
@@ -98,14 +100,14 @@ int *actualCount) /* RETURN */
*ch = '\0'; /* and replace with null-termination */
count++;
} else {
- Xfree(ch);
+ Xfree(chstart);
Xfree(flist);
flist = NULL;
count = 0;
break;
}
} else {
- Xfree(ch);
+ Xfree(chstart);
Xfree(flist);
flist = NULL;
count = 0;
--
2.9.3

View File

@ -1,36 +0,0 @@
From 20a3f99eba5001925b8b313da3accb7900eb1927 Mon Sep 17 00:00:00 2001
From: Emilio Pozuelo Monfort <pochu@debian.org>
Date: Tue, 25 Oct 2016 21:30:15 +0200
Subject: [PATCH libX11] Plug a memory leak
This was introduced in 8ea762f.
Reported-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Emilio Pozuelo Monfort <pochu@debian.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
src/FontNames.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/FontNames.c b/src/FontNames.c
index e55f338..3e23b5f 100644
--- a/src/FontNames.c
+++ b/src/FontNames.c
@@ -98,12 +98,14 @@ int *actualCount) /* RETURN */
*ch = '\0'; /* and replace with null-termination */
count++;
} else {
+ Xfree(ch);
Xfree(flist);
flist = NULL;
count = 0;
break;
}
} else {
+ Xfree(ch);
Xfree(flist);
flist = NULL;
count = 0;
--
2.9.3

View File

@ -4,8 +4,8 @@
Summary: Core X11 protocol client library
Name: libX11
Version: 1.6.4
Release: 6%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
Version: 1.6.5
Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
License: MIT
Group: System Environment/Libraries
URL: http://www.x.org
@ -15,12 +15,10 @@ Source0: %{tarball}-%{gitdate}.tar.bz2
Source1: make-git-snapshot.sh
Source2: commitid
%else
Source0: http://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.tar.bz2
Source0: https://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.tar.bz2
%endif
Patch2: dont-forward-keycode-0.patch
Patch3: 0001-Plug-a-memory-leak.patch
Patch4: 0001-Fix-wrong-Xfree-in-XListFonts-failure-path.patch
BuildRequires: xorg-x11-util-macros >= 1.11
BuildRequires: pkgconfig(xproto) >= 7.0.15
@ -53,8 +51,6 @@ X.Org X11 libX11 development package
%prep
%setup -q -n %{tarball}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}}
%patch2 -p1 -b .dont-forward-keycode-0
%patch3 -p1
%patch4 -p1
%build
autoreconf -v --install --force
@ -119,6 +115,9 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man5/*.5*
%changelog
* Wed Apr 26 2017 Adam Jackson <ajax@redhat.com> - 1.6.5-1
- libX11 1.6.5
* Thu Feb 16 2017 Rex Dieter <rdieter@fedoraproject.org> - 1.6.4-6
- create/own /var/cache/libx11/compose (#962764)
- %%build: --disable-silent-rules

View File

@ -1,2 +1 @@
2e36b73f8a42143142dda8129f02e4e0 libX11-1.6.3.tar.bz2
6d54227082f3aa2c596f0b3a3fbb9175 libX11-1.6.4.tar.bz2
SHA512 (libX11-1.6.5.tar.bz2) = 63c40d37c92b8d1ac78541830b0c624c4e936924b26bce769936e0e2523fa8997be364647705057065f803f804897ea8173d1c41ef69a92832f20cc7c0fd40a0