Hello community, here is the log from the commit of package xorg-x11-libs checked in at Wed Dec 20 11:41:49 CET 2006. -------- --- xorg-x11-libs/xorg-x11-libs.changes 2006-12-17 12:12:20.000000000 +0100 +++ /mounts/work_src_done/STABLE/xorg-x11-libs/xorg-x11-libs.changes 2006-12-20 05:07:25.000000000 +0100 @@ -1,0 +2,10 @@ +Wed Dec 20 04:50:19 CET 2006 - sndirsch@suse.de + +- libXi-20061015090357.diff: + * Don't call XInput_find_display in _XiGetExtensionVersion, + while the Display lock is held (X.Org Bug #8581/9392) +- libXi-20061119100426.diff: + * _XiCheckExtInit must drop the Display lock in all + error cases (X.Org Bug #8663) + +------------------------------------------------------------------- New: ---- libXi-20061015090357.diff libXi-20061119100426.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-libs.spec ++++++ --- /var/tmp/diff_new_pack.qXWbNH/_old 2006-12-20 11:41:28.000000000 +0100 +++ /var/tmp/diff_new_pack.qXWbNH/_new 2006-12-20 11:41:28.000000000 +0100 @@ -19,7 +19,7 @@ %endif URL: http://xorg.freedesktop.org/ Version: 7.2 -Release: 26 +Release: 27 License: X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/Libraries @@ -57,6 +57,8 @@ Patch3: p_xft_cjk.diff Patch4: p_xft_register.diff Patch5: libxkbui.diff +Patch6: libXi-20061015090357.diff +Patch7: libXi-20061119100426.diff %description This package contains the remaining X.Org libraries. @@ -135,6 +137,10 @@ pushd libxkbui-* %patch5 popd +pushd libXi-* +%patch6 -p1 +%patch7 -p1 +popd %build for dir in libXft1-* xbitmaps-* $(ls | grep -v -e libXft1 -e xbitmaps); do @@ -199,6 +205,13 @@ %{_mandir}/man3/* %changelog -n xorg-x11-libs +* Wed Dec 20 2006 - sndirsch@suse.de +- libXi-20061015090357.diff: + * Don't call XInput_find_display in _XiGetExtensionVersion, + while the Display lock is held (X.Org Bug #8581/9392) +- libXi-20061119100426.diff: + * _XiCheckExtInit must drop the Display lock in all + error cases (X.Org Bug #8663) * Sun Dec 17 2006 - sndirsch@suse.de - updated libXScrnSaver to release 1.1.2 * Makefile.am: make ChangeLog hook safer ++++++ libXi-20061015090357.diff ++++++ commit 5dda1e1509d40ef64ebc816ce538cef462a4fa51 Author: Jamey Sharp <jamey@minilop.net> Date: Sun Oct 15 00:03:57 2006 -0700 Don't call XInput_find_display in _XiGetExtensionVersion, while the Display lock is held. _XiGetExtensionVersion has two callers. One had already called XInput_find_display, and the other could easily do so outside the Display lock. So I change the _XiGetExtensionVersion interface to accept a previously-computed XExtDisplayInfo from the caller. Besides being more correct, this should be slightly faster. :-) Thanks to Magnus Kessler <Magnus.Kessler@gmx.net> for identifying the bug and proposing a workaround. diff --git a/src/XExtInt.c b/src/XExtInt.c index e5baccb..aa838ef 100644 --- a/src/XExtInt.c +++ b/src/XExtInt.c @@ -207,7 +207,7 @@ _XiCheckExtInit(dpy, version_index) return (-1); } ((XInputData *) info->data)->vers = - _XiGetExtensionVersion(dpy, "XInputExtension"); + _XiGetExtensionVersion(dpy, "XInputExtension", info); } if (versions[version_index].major_version > Dont_Check) { diff --git a/src/XGetVers.c b/src/XGetVers.c index 1f4fd7a..ef41fea 100644 --- a/src/XGetVers.c +++ b/src/XGetVers.c @@ -64,9 +64,10 @@ XExtensionVersion * XGetExtensionVersion(register Display * dpy, _Xconst char *name) { XExtensionVersion *ext; + XExtDisplayInfo *info = XInput_find_display(dpy); LockDisplay(dpy); - ext = _XiGetExtensionVersion(dpy, name); + ext = _XiGetExtensionVersion(dpy, name, info); if (ext != (XExtensionVersion *) NoSuchExtension) { UnlockDisplay(dpy); SyncHandle(); @@ -75,12 +76,11 @@ XGetExtensionVersion(register Display * } XExtensionVersion * -_XiGetExtensionVersion(register Display * dpy, _Xconst char *name) +_XiGetExtensionVersion(register Display * dpy, _Xconst char *name, XExtDisplayInfo *info) { xGetExtensionVersionReq *req; xGetExtensionVersionReply rep; XExtensionVersion *ext; - XExtDisplayInfo *info = XInput_find_display(dpy); if (_XiCheckExtInit(dpy, Dont_Check) == -1) return ((XExtensionVersion *) NoSuchExtension); diff --git a/src/XIint.h b/src/XIint.h index ba965a6..ae6d33f 100644 --- a/src/XIint.h +++ b/src/XIint.h @@ -12,6 +12,6 @@ extern XExtDisplayInfo *XInput_find_disp extern int _XiCheckExtInit(Display *, int); -extern XExtensionVersion *_XiGetExtensionVersion(Display *, _Xconst char *); +extern XExtensionVersion *_XiGetExtensionVersion(Display *, _Xconst char *, XExtDisplayInfo *); #endif ++++++ libXi-20061119100426.diff ++++++ commit 60dccd9a7be95e35b4b8c90934888efedfde84cc Author: Jamey Sharp <jamey@minilop.net> Date: Sun Nov 19 01:04:26 2006 -0800 Bug #8663: _XiCheckExtInit must drop the Display lock in all error cases. diff --git a/src/XExtInt.c b/src/XExtInt.c index 427e406..8366104 100644 --- a/src/XExtInt.c +++ b/src/XExtInt.c @@ -80,9 +80,6 @@ typedef struct _XInputData XExtensionVersion *vers; } XInputData; -#define XInputCheckExtension(dpy,i,val) \ - XextCheckExtension (dpy, i, xinput_extension_name, val) - static /* const */ XExtensionHooks xinput_extension_hooks = { NULL, /* create_gc */ NULL, /* copy_gc */ @@ -183,6 +180,12 @@ _xidevicebusy(dpy, error) *error = info->codes->first_error + XI_DeviceBusy; } +static int XInputCheckExtension(Display *dpy, XExtDisplayInfo *info) +{ + XextCheckExtension (dpy, info, xinput_extension_name, 0); + return 1; +} + /*********************************************************************** * * Check to see if the input extension is installed in the server. @@ -198,7 +201,10 @@ _XiCheckExtInit(dpy, version_index, info { XExtensionVersion *ext; - XInputCheckExtension(dpy, info, -1); + if (!XInputCheckExtension(dpy, info)) { + UnlockDisplay(dpy); + return (-1); + } if (info->data == NULL) { info->data = (XPointer) Xmalloc(sizeof(XInputData)); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org