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

xorg-server: Changes to 'ubuntu'



 ChangeLog                                                     |   93 ++++++
 Xi/xipassivegrab.c                                            |    4 
 Xi/xiproperty.c                                               |    4 
 config/hal.c                                                  |    6 
 config/udev.c                                                 |   10 
 configure.ac                                                  |   11 
 debian/changelog                                              |   26 +
 debian/patches/216_fix_sdksyms_build.diff                     |   52 ---
 debian/patches/series                                         |    1 
 debian/rules                                                  |    1 
 dix/devices.c                                                 |    2 
 glx/glapi.c                                                   |    4 
 glx/glapi.h                                                   |    2 
 glx/glthread.h                                                |    2 
 hw/dmx/doc/Makefile.am                                        |  147 +++++++++-
 hw/xfree86/common/xf86Config.c                                |   10 
 hw/xfree86/common/xf86Xinput.c                                |    5 
 hw/xfree86/loader/Makefile.am                                 |    9 
 hw/xfree86/modes/xf86Crtc.c                                   |   21 -
 hw/xfree86/vbe/vbe.c                                          |    2 
 hw/xquartz/X11Application.h                                   |    3 
 hw/xquartz/X11Application.m                                   |   29 +
 hw/xquartz/bundle/Resources/English.lproj/Localizable.strings |binary
 hw/xquartz/pbproxy/x-selection.h                              |    2 
 hw/xquartz/quartz.c                                           |    2 
 hw/xquartz/quartz.h                                           |    2 
 hw/xquartz/quartzRandR.c                                      |   27 +
 hw/xquartz/xpr/xprAppleWM.c                                   |    2 
 hw/xquartz/xpr/xprFrame.c                                     |    4 
 hw/xquartz/xpr/xprScreen.c                                    |   34 ++
 include/dix-config.h.in                                       |    3 
 include/xkbsrv.h                                              |    5 
 miext/damage/damage.c                                         |    6 
 xkb/XKBAlloc.c                                                |   19 +
 xkb/ddxLoad.c                                                 |   22 -
 xkb/xkb.c                                                     |   23 -
 xkb/xkbActions.c                                              |   11 
 37 files changed, 452 insertions(+), 154 deletions(-)

New commits:
commit b4bdcaae325219489e9669ff2b711036af57e388
Author: Cyril Brulebois <kibi@debian.org>
Date:   Wed Mar 30 02:23:29 2011 +0200

    Upload to experimental.

diff --git a/debian/changelog b/debian/changelog
index aa70571..8845a98 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,6 @@
-xorg-server (2:1.10.0.901-1) UNRELEASED; urgency=low
+xorg-server (2:1.10.0.901-1) experimental; urgency=low
 
-  * New upstream release.
+  * New upstream release (1.10.1 rc1).
   * Relax build-dep and dep on x11proto-randr-dev since the XRandR 1.4
     bits were finally reverted upstream.
   * Remove patch: 16-construct-paths-in-doxygen.conf.diff (merged
@@ -8,7 +8,7 @@ xorg-server (2:1.10.0.901-1) UNRELEASED; urgency=low
   * Pass --enable-xcsecurity to the main build to restore the XC-SECURITY
     extension, thanks to Stefan Fritsch's report (Closes: #599657).
 
- -- Cyril Brulebois <kibi@debian.org>  Wed, 30 Mar 2011 01:42:22 +0200
+ -- Cyril Brulebois <kibi@debian.org>  Wed, 30 Mar 2011 02:22:56 +0200
 
 xorg-server (2:1.9.99.903-1) experimental; urgency=low
 

commit ec55b8a6b4fe402b7cdf7df347fe33d371840ffe
Author: Cyril Brulebois <kibi@debian.org>
Date:   Wed Mar 30 01:42:45 2011 +0200

    Bump changelogs.

diff --git a/debian/changelog b/debian/changelog
index 4a662e8..aa70571 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.10.0-1) UNRELEASED; urgency=low
+xorg-server (2:1.10.0.901-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * Relax build-dep and dep on x11proto-randr-dev since the XRandR 1.4
@@ -8,7 +8,7 @@ xorg-server (2:1.10.0-1) UNRELEASED; urgency=low
   * Pass --enable-xcsecurity to the main build to restore the XC-SECURITY
     extension, thanks to Stefan Fritsch's report (Closes: #599657).
 
- -- Cyril Brulebois <kibi@debian.org>  Fri, 25 Feb 2011 16:15:45 +0100
+ -- Cyril Brulebois <kibi@debian.org>  Wed, 30 Mar 2011 01:42:22 +0200
 
 xorg-server (2:1.9.99.903-1) experimental; urgency=low
 

commit c75637877372c74ae20fdd8f51c5fd68a629f4ac
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date:   Mon Mar 28 23:32:06 2011 -0700

    configure.ac: 1.10.0.901 (1.10.1 RC1)
    
    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>

diff --git a/configure.ac b/configure.ac
index 61224b6..4a09bba 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.10.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2011-2-25"
+AC_INIT([xorg-server], 1.10.0.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2011-03-29"
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE

commit d3992dbe586f873a089fca25846ca08a85708352
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date:   Mon Mar 28 23:31:18 2011 -0700

    hw/dmx/doc: Update list of doxygen-generated files
    
    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>

diff --git a/hw/dmx/doc/Makefile.am b/hw/dmx/doc/Makefile.am
index 8e73602..f6d2b97 100644
--- a/hw/dmx/doc/Makefile.am
+++ b/hw/dmx/doc/Makefile.am
@@ -32,12 +32,21 @@ DOXYGEN_HEAD=\
 DOXYGEN_REST= \
 	dmx.txt \
 	scaled.txt \
+	html/annotated.html \
+	html/bc_s.png \
 	html/ChkNotMaskEv_8c.html \
 	html/ChkNotMaskEv_8h.html \
 	html/ChkNotMaskEv_8h_source.html \
 	html/classes.html \
+	html/closed.png \
+	html/dmx-config_8h.html \
+	html/dmx-config_8h_source.html \
+	html/dmx_8c.html \
 	html/dmx_8h.html \
 	html/dmx_8h_source.html \
+	html/dmx__glxvisuals_8c.html \
+	html/dmx__glxvisuals_8h.html \
+	html/dmx__glxvisuals_8h_source.html \
 	html/dmxarg_8c.html \
 	html/dmxarg_8h.html \
 	html/dmxarg_8h_source.html \
@@ -89,7 +98,6 @@ DOXYGEN_REST= \
 	html/dmxgcops_8c.html \
 	html/dmxgcops_8h.html \
 	html/dmxgcops_8h_source.html \
-	html/dmx__glxvisuals_8h_source.html \
 	html/dmxinit_8c.html \
 	html/dmxinit_8h.html \
 	html/dmxinit_8h_source.html \
@@ -138,6 +146,7 @@ DOXYGEN_REST= \
 	html/dmxsync_8c.html \
 	html/dmxsync_8h.html \
 	html/dmxsync_8h_source.html \
+	html/dmxtodmx_8c.html \
 	html/dmxvisual_8c.html \
 	html/dmxvisual_8h.html \
 	html/dmxvisual_8h_source.html \
@@ -159,17 +168,119 @@ DOXYGEN_REST= \
 	html/ftv2node.png \
 	html/ftv2plastnode.png \
 	html/ftv2pnode.png \
+	html/ftv2splitbar.png \
 	html/ftv2vertline.png \
 	html/functions.html \
+	html/functions_0x62.html \
+	html/functions_0x63.html \
+	html/functions_0x64.html \
+	html/functions_0x65.html \
+	html/functions_0x66.html \
+	html/functions_0x67.html \
+	html/functions_0x68.html \
+	html/functions_0x69.html \
+	html/functions_0x6b.html \
+	html/functions_0x6c.html \
+	html/functions_0x6d.html \
+	html/functions_0x6e.html \
+	html/functions_0x6f.html \
+	html/functions_0x70.html \
+	html/functions_0x72.html \
+	html/functions_0x73.html \
+	html/functions_0x74.html \
+	html/functions_0x75.html \
+	html/functions_0x76.html \
+	html/functions_0x77.html \
+	html/functions_0x78.html \
+	html/functions_0x79.html \
+	html/functions_eval.html \
 	html/functions_vars.html \
+	html/functions_vars_0x62.html \
+	html/functions_vars_0x63.html \
+	html/functions_vars_0x64.html \
+	html/functions_vars_0x65.html \
+	html/functions_vars_0x66.html \
+	html/functions_vars_0x67.html \
+	html/functions_vars_0x68.html \
+	html/functions_vars_0x69.html \
+	html/functions_vars_0x6b.html \
+	html/functions_vars_0x6c.html \
+	html/functions_vars_0x6d.html \
+	html/functions_vars_0x6e.html \
+	html/functions_vars_0x6f.html \
+	html/functions_vars_0x70.html \
+	html/functions_vars_0x72.html \
+	html/functions_vars_0x73.html \
+	html/functions_vars_0x74.html \
+	html/functions_vars_0x75.html \
+	html/functions_vars_0x76.html \
+	html/functions_vars_0x77.html \
+	html/functions_vars_0x78.html \
+	html/functions_vars_0x79.html \
+	html/globals.html \
+	html/globals_0x61.html \
+	html/globals_0x62.html \
+	html/globals_0x63.html \
+	html/globals_0x64.html \
+	html/globals_0x65.html \
+	html/globals_0x66.html \
+	html/globals_0x67.html \
+	html/globals_0x69.html \
+	html/globals_0x6b.html \
+	html/globals_0x6c.html \
+	html/globals_0x6d.html \
+	html/globals_0x6e.html \
+	html/globals_0x6f.html \
+	html/globals_0x70.html \
+	html/globals_0x71.html \
+	html/globals_0x72.html \
+	html/globals_0x73.html \
+	html/globals_0x74.html \
+	html/globals_0x75.html \
+	html/globals_0x76.html \
+	html/globals_0x78.html \
+	html/globals_0x79.html \
 	html/globals_defs.html \
+	html/globals_defs_0x62.html \
+	html/globals_defs_0x63.html \
+	html/globals_defs_0x64.html \
+	html/globals_defs_0x65.html \
+	html/globals_defs_0x66.html \
+	html/globals_defs_0x67.html \
+	html/globals_defs_0x6c.html \
+	html/globals_defs_0x6d.html \
+	html/globals_defs_0x6e.html \
+	html/globals_defs_0x6f.html \
+	html/globals_defs_0x70.html \
+	html/globals_defs_0x72.html \
+	html/globals_defs_0x73.html \
+	html/globals_defs_0x74.html \
+	html/globals_defs_0x75.html \
+	html/globals_defs_0x76.html \
 	html/globals_enum.html \
 	html/globals_eval.html \
 	html/globals_func.html \
-	html/globals.html \
+	html/globals_func_0x61.html \
+	html/globals_func_0x63.html \
+	html/globals_func_0x64.html \
+	html/globals_func_0x65.html \
+	html/globals_func_0x67.html \
+	html/globals_func_0x69.html \
+	html/globals_func_0x6b.html \
+	html/globals_func_0x6c.html \
+	html/globals_func_0x6d.html \
+	html/globals_func_0x6e.html \
+	html/globals_func_0x6f.html \
+	html/globals_func_0x70.html \
+	html/globals_func_0x73.html \
+	html/globals_func_0x75.html \
+	html/globals_func_0x76.html \
+	html/globals_func_0x78.html \
+	html/globals_func_0x79.html \
 	html/globals_type.html \
 	html/globals_vars.html \
 	html/index.html \
+	html/jquery.js \
 	html/lnx-keyboard_8c.html \
 	html/lnx-keyboard_8h.html \
 	html/lnx-keyboard_8h_source.html \
@@ -179,15 +290,18 @@ DOXYGEN_REST= \
 	html/lnx-ps2_8c.html \
 	html/lnx-ps2_8h.html \
 	html/lnx-ps2_8h_source.html \
-	html/main.html \
+	html/nav_f.png \
+	html/nav_h.png \
+	html/navtree.css \
+	html/navtree.js \
+	html/open.png \
+	html/resize.js \
 	html/struct__dmxArg.html \
 	html/struct__dmxColormapPriv.html \
-	html/structDMXConfigCmdStruct.html \
 	html/struct__DMXConfigComment.html \
 	html/struct__DMXConfigDisplay.html \
 	html/struct__DMXConfigEntry.html \
 	html/struct__DMXConfigFullDim.html \
-	html/structDMXConfigListStruct.html \
 	html/struct__DMXConfigNumber.html \
 	html/struct__DMXConfigOption.html \
 	html/struct__DMXConfigPair.html \
@@ -199,26 +313,33 @@ DOXYGEN_REST= \
 	html/struct__DMXConfigVirtual.html \
 	html/struct__DMXConfigWall.html \
 	html/struct__dmxCursorPriv.html \
-	html/structDMXDesktopAttributesRec.html \
 	html/struct__DMXEventMap.html \
 	html/struct__dmxFontPriv.html \
 	html/struct__dmxGCPriv.html \
-	html/structdmxGlxVisualPrivate.html \
 	html/struct__dmxGlyphPriv.html \
-	html/structDMXInputAttributesRec.html \
 	html/struct__DMXInputInfo.html \
 	html/struct__DMXLocalInitInfo.html \
 	html/struct__DMXLocalInputInfo.html \
 	html/struct__dmxPictPriv.html \
 	html/struct__dmxPixPriv.html \
-	html/structDMXScreenAttributesRec.html \
 	html/struct__DMXScreenInfo.html \
 	html/struct__DMXStatAvg.html \
 	html/struct__DMXStatInfo.html \
-	html/structDMXWindowAttributesRec.html \
 	html/struct__dmxWinPriv.html \
 	html/struct__myPrivate.html \
-	html/tree.html \
+	html/structDMXConfigCmdStruct.html \
+	html/structDMXConfigListStruct.html \
+	html/structDMXDesktopAttributesRec.html \
+	html/structdmxGlxVisualPrivate.html \
+	html/structDMXInputAttributesRec.html \
+	html/structDMXScreenAttributesRec.html \
+	html/structDMXWindowAttributesRec.html \
+	html/structstack.html \
+	html/tab_a.png \
+	html/tab_b.png \
+	html/tab_h.png \
+	html/tab_s.png \
+	html/tabs.css \
 	html/usb-common_8c.html \
 	html/usb-common_8h.html \
 	html/usb-common_8h_source.html \
@@ -232,7 +353,9 @@ DOXYGEN_REST= \
 	html/usb-other_8h.html \
 	html/usb-other_8h_source.html \
 	html/usb-private_8h.html \
-	html/usb-private_8h_source.html
+	html/usb-private_8h_source.html \
+	html/vdltodmx_8c.html \
+	html/xdmxconfig_8c.html
 
 DOXYGEN_FILES=$(DOXYGEN_HEAD) $(DOXYGEN_REST)
 

commit c5602d16399b5abb9d67365144134728a27e1cc5
Author: Erkki Seppälä <erkki.seppala@vincit.fi>
Date:   Fri Mar 18 16:35:36 2011 +0200

    config: handle device change event properly
    
    wakeup_handler in udev.c wasn't dealing with udev change events.
    There are situations when a device can gain its input capabilities
    after it has been added to the system and therefore the change events
    must be handled as well.
    
    The change is handled as a consecutive device removal and addition.
    
    Signed-off-by: Erkki Seppälä <erkki.seppala@vincit.fi>
    Signed-off-by: Stefan Kost <Stefan.Kost@nokia.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 6243332782f2d286d49f1dec8a628b0a403665fd)

diff --git a/config/udev.c b/config/udev.c
index 678e47a..9ac34ee 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -255,6 +255,10 @@ wakeup_handler(pointer data, int err, pointer read_mask)
                 device_added(udev_device);
             else if (!strcmp(action, "remove"))
                 device_removed(udev_device);
+            else if (!strcmp(action, "change")) {
+                device_removed(udev_device);
+                device_added(udev_device);
+            }
         }
         udev_device_unref(udev_device);
     }

commit a07c07dc6c921ffb9a729f5224c9de8ff237bf54
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 18 11:06:57 2011 +1000

    xfree86: print out which driver is about to be used.
    
    Makes reading the log file a lot easier for those that don't magically
    recognise the log spew by the individual drivers.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
    (cherry picked from commit fad10cb38ef2433c82f8a43d3b7d64e323728060)

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index e3264e6..2bac33a 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -775,6 +775,8 @@ xf86NewInputDevice(InputInfoPtr pInfo, DeviceIntPtr *pdev, BOOL enable)
         goto unwind;
     }
 
+    xf86Msg(X_INFO, "Using input driver '%s' for '%s'\n", drv->driverName, pInfo->name);
+
     if (!drv->PreInit) {
         xf86Msg(X_ERROR,
                 "Input driver `%s' has no PreInit function (ignoring)\n",

commit 4edf97ad4f99a78d2131bef54a8692c3a35b1c97
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date:   Tue Mar 22 19:01:48 2011 -0700

    GLX: Support TLS with better portability
    
    AX_TLS detects when toolchains support __thread or __declspec(thread),
    but existing code assumed __thread.
    
    This also adds a check to configure.ac to error out if TLS is requested
    but unsupported.
    
    Found-by: Tinderbox
    http://tinderbox.x.org/builds/2011-03-22-0007
    
    Regression-from: 82b1eaa6cad20f39dbf15573bdb3d62acbcd91f9
    
    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
    Reviewed-by: Tom Fogal <tfogal@alumni.unh.edu>
    Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
    (cherry picked from commit c55baebf4ebf1887262cc16899eb297b9f284f6e)

diff --git a/configure.ac b/configure.ac
index 0a06391..61224b6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -599,7 +599,10 @@ AC_ARG_ENABLE(aiglx,          AS_HELP_STRING([--enable-aiglx], [Build accelerate
                                 [AIGLX=yes])
 AX_TLS
 AC_ARG_ENABLE(glx-tls,        AS_HELP_STRING([--enable-glx-tls], [Build GLX with TLS support (default: auto)]),
-                                [GLX_USE_TLS=$enableval],
+                                [GLX_USE_TLS=$enableval
+                                 if test "x$GLX_USE_TLS" = "xyes" && test "${ac_cv_tls}" = "none" ; then
+                                   AC_MSG_ERROR([GLX with TLS support requested, but the compiler does not support it.])
+                                 fi],
                                 [GLX_USE_TLS=no
                                  if test "${ac_cv_tls}" != "none" ; then
                                    GLX_USE_TLS=yes
diff --git a/glx/glapi.c b/glx/glapi.c
index d6a568e..d9bd04d 100644
--- a/glx/glapi.c
+++ b/glx/glapi.c
@@ -190,11 +190,11 @@ static GLint NoOpUnused(void)
 /*@{*/
 #if defined(GLX_USE_TLS)
 
-PUBLIC __thread struct _glapi_table * _glapi_tls_Dispatch
+PUBLIC TLS struct _glapi_table * _glapi_tls_Dispatch
     __attribute__((tls_model("initial-exec")))
     = (struct _glapi_table *) __glapi_noop_table;
 
-PUBLIC __thread void * _glapi_tls_Context
+PUBLIC TLS void * _glapi_tls_Context
     __attribute__((tls_model("initial-exec")));
 
 PUBLIC const struct _glapi_table *_glapi_Dispatch = NULL;
diff --git a/glx/glapi.h b/glx/glapi.h
index 8f2cf66..ab80f7e 100644
--- a/glx/glapi.h
+++ b/glx/glapi.h
@@ -83,7 +83,7 @@ typedef void (*_glapi_warning_func)(void *ctx, const char *str, ...);
 const extern void *_glapi_Context;
 const extern struct _glapi_table *_glapi_Dispatch;
 
-extern __thread void * _glapi_tls_Context
+extern TLS void * _glapi_tls_Context
     __attribute__((tls_model("initial-exec")));
 
 # define GET_CURRENT_CONTEXT(C)  GLcontext *C = (GLcontext *) _glapi_tls_Context
diff --git a/glx/glthread.h b/glx/glthread.h
index e2765ce..78f149f 100644
--- a/glx/glthread.h
+++ b/glx/glthread.h
@@ -300,7 +300,7 @@ _glthread_SetTSD(_glthread_TSD *, void *);
 
 #if defined(GLX_USE_TLS)
 
-extern __thread struct _glapi_table * _glapi_tls_Dispatch
+extern TLS struct _glapi_table * _glapi_tls_Dispatch
     __attribute__((tls_model("initial-exec")));
 
 #define GET_DISPATCH() _glapi_tls_Dispatch
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index 5622766..d81264d 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -441,6 +441,9 @@
 /* Define to 1 if you have the `ffs' function. */
 #undef HAVE_FFS
 
+/* If the compiler supports a TLS storage class define it to that here */
+#undef TLS
+
 /* Correctly set _XSERVER64 for OSX fat binaries */
 #ifdef __APPLE__
 #include "dix-config-apple-verbatim.h"

commit b8e8579df592c050dfab2dc45f5004b67dbb965e
Author: Rami Ylimäki <rami.ylimaki@vincit.fi>
Date:   Wed Mar 9 15:45:40 2011 +0200

    xkb: Initialize pad bytes sent in replies of geometry requests.
    
    Valgrind complains about uninitialized data being written to clients.
    
    Reviewed-by: Erkki Seppälä <erkki.seppala@vincit.fi>
    Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi>
    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit dc9ce695a69ca0787f58f8d160212a7a41acb703)

diff --git a/xkb/xkb.c b/xkb/xkb.c
index 63eb46a..a8d0e80 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -4310,7 +4310,7 @@ ProcXkbSetNames(ClientPtr client)
 static char *
 XkbWriteCountedString(char *wire,char *str,Bool swap)
 {
-    CARD16 len,*pLen;
+    CARD16 len,*pLen, paddedLen;
 
     if (!str)
         return wire;
@@ -4322,8 +4322,9 @@ XkbWriteCountedString(char *wire,char *str,Bool swap)
 	register int n;
 	swaps(pLen,n);
     }
-    memcpy(&wire[2],str,len);
-    wire+= ((2+len+3)/4)*4;
+    paddedLen= pad_to_int32(sizeof(len)+len)-sizeof(len);
+    strncpy(&wire[sizeof(len)],str,paddedLen);
+    wire+= sizeof(len)+paddedLen;
     return wire;
 }
 
@@ -4434,6 +4435,7 @@ xkbShapeWireDesc *	shapeWire;
 	if (shape->approx!=NULL)
 	     shapeWire->approxNdx= XkbOutlineIndex(shape,shape->approx);
 	else shapeWire->approxNdx= XkbNoShape;
+	shapeWire->pad= 0;
 	if (swap) {
 	    register int n;
 	    swapl(&shapeWire->name,n);
@@ -4446,6 +4448,7 @@ xkbShapeWireDesc *	shapeWire;
 	    olWire= (xkbOutlineWireDesc *)wire;
 	    olWire->nPoints= ol->num_points;
 	    olWire->cornerRadius= ol->corner_radius;
+	    olWire->pad= 0;
 	    wire= (char *)&olWire[1];
 	    ptWire= (xkbPointWireDesc *)wire;
 	    for (p=0,pt=ol->points;p<ol->num_points;p++,pt++) {
@@ -4559,6 +4562,8 @@ xkbOverlayWireDesc *	olWire;
    olWire= (xkbOverlayWireDesc *)wire;
    olWire->name= ol->name;
    olWire->nRows= ol->num_rows;
+   olWire->pad1= 0;
+   olWire->pad2= 0;
    if (swap) {
 	register int n;
 	swapl(&olWire->name,n);
@@ -4571,6 +4576,7 @@ xkbOverlayWireDesc *	olWire;
 	rowWire= (xkbOverlayRowWireDesc *)wire;
 	rowWire->rowUnder= row->row_under;
 	rowWire->nKeys= row->num_keys;
+	rowWire->pad1= 0;
 	wire= (char *)&rowWire[1];
 	for (k=0,key=row->keys;k<row->num_keys;k++,key++) {
 	    xkbOverlayKeyWireDesc *	keyWire;

commit e22497eddc54967e892fbe99f2c4239b4504daf6
Author: Rami Ylimäki <rami.ylimaki@vincit.fi>
Date:   Fri Mar 11 14:30:49 2011 +0200

    xkb: Release XKB component names when compiling keymap.
    
    Reviewed-by: Erkki Seppälä <erkki.seppala@vincit.fi>
    Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 5c47f8beac7f87680c6f7331483b9cf94a1dbc86)

diff --git a/include/xkbsrv.h b/include/xkbsrv.h
index 9f1507e..34ef574 100644
--- a/include/xkbsrv.h
+++ b/include/xkbsrv.h
@@ -447,6 +447,11 @@ extern _X_EXPORT void	XkbFreeKeyboard(
 	Bool			/* freeDesc */
 );
 
+extern _X_EXPORT void	XkbFreeComponentNames(
+	XkbComponentNamesPtr	/* names */,
+	Bool			/* freeNames */
+);
+
 extern _X_EXPORT  void XkbSetActionKeyMods(
 	XkbDescPtr		/* xkb */,
 	XkbAction *		/* act */,
diff --git a/xkb/XKBAlloc.c b/xkb/XKBAlloc.c
index bffd60f..b70ac17 100644
--- a/xkb/XKBAlloc.c
+++ b/xkb/XKBAlloc.c
@@ -333,3 +333,22 @@ XkbFreeKeyboard(XkbDescPtr xkb,unsigned which,Bool freeAll)
 	free(xkb);
     return;
 }
+
+
+/***====================================================================***/
+
+void
+XkbFreeComponentNames(XkbComponentNamesPtr names, Bool freeNames)
+{
+    if (names)
+    {
+        free(names->keycodes);
+        free(names->types);
+        free(names->compat);
+        free(names->symbols);
+        free(names->geometry);
+        memset(names, 0, sizeof(XkbComponentNamesRec));
+    }
+    if (freeNames)
+        free(names);
+}
diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c
index ac587fc..a935698 100644
--- a/xkb/ddxLoad.c
+++ b/xkb/ddxLoad.c
@@ -446,23 +446,23 @@ XkbRMLVOtoKcCGST(DeviceIntPtr dev, XkbRMLVOSet *rmlvo, XkbComponentNamesPtr kccg
 static XkbDescPtr
 XkbCompileKeymapForDevice(DeviceIntPtr dev, XkbRMLVOSet *rmlvo, int need)
 {
-    XkbDescPtr xkb;
+    XkbDescPtr xkb = NULL;
     unsigned int provided;
-    XkbComponentNamesRec kccgst;
+    XkbComponentNamesRec kccgst = {0};
     char name[PATH_MAX];
 
-    if (!XkbRMLVOtoKcCGST(dev, rmlvo, &kccgst))
-        return NULL;
-
-    provided = XkbDDXLoadKeymapByNames(dev, &kccgst, XkmAllIndicesMask, need,
-                                       &xkb, name, PATH_MAX);
-    if ((need & provided) != need) {
-        if (xkb) {
-            XkbFreeKeyboard(xkb, 0, TRUE);
-            xkb = NULL;
+    if (XkbRMLVOtoKcCGST(dev, rmlvo, &kccgst)) {
+        provided = XkbDDXLoadKeymapByNames(dev, &kccgst, XkmAllIndicesMask, need,
+                                           &xkb, name, PATH_MAX);
+        if ((need & provided) != need) {
+            if (xkb) {
+                XkbFreeKeyboard(xkb, 0, TRUE);
+                xkb = NULL;
+            }
         }
     }
 
+    XkbFreeComponentNames(&kccgst, FALSE);
     return xkb;
 }
 
diff --git a/xkb/xkb.c b/xkb/xkb.c
index a57139f..63eb46a 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -5897,16 +5897,7 @@ ProcXkbGetKbdByName(ClientPtr client)
 	XkbFreeKeyboard(new,XkbAllComponentsMask,TRUE);
 	new= NULL;
     }
-    free(names.keycodes);
-    names.keycodes = NULL;
-    free(names.types);
-    names.types = NULL;
-    free(names.compat);
-    names.compat = NULL;
-    free(names.symbols);
-    names.symbols = NULL;
-    free(names.geometry);
-    names.geometry = NULL;
+    XkbFreeComponentNames(&names, FALSE);
     return Success;
 }
 

commit a96fd08b406b9955ff0d5c02f4a50f4fb2acf40e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 8 14:41:21 2011 +1000

    Xi: fix XI2 passive grab reply length calculation
    
    If modifiers failed, the reply length was 4 bytes too short.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Julien Cristau <jcristau@debian.org>
    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
    (cherry picked from commit 33fee13361e745e1db29e250b08622c83046d488)

diff --git a/Xi/xipassivegrab.c b/Xi/xipassivegrab.c
index e99b6e5..4b71c68 100644
--- a/Xi/xipassivegrab.c
+++ b/Xi/xipassivegrab.c
@@ -194,7 +194,7 @@ ProcXIPassiveGrabDevice(ClientPtr client)
             info->status = status;
             info->modifiers = *modifiers;
             rep.num_modifiers++;
-            rep.length++;
+            rep.length += bytes_to_int32(sizeof(xXIGrabModifierInfo));
         }
     }
 
@@ -202,7 +202,7 @@ ProcXIPassiveGrabDevice(ClientPtr client)
     if (rep.num_modifiers)
     {
 	client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
-        WriteSwappedDataToClient(client, rep.num_modifiers * 4, (char*)modifiers_failed);
+        WriteSwappedDataToClient(client, rep.length * 4, (char*)modifiers_failed);
     }
     free(modifiers_failed);
     return ret;

commit 09f6d85b5bb49406f015ec667bb6efb3e710ced2
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Mar 7 18:55:19 2011 +0100

    Xi: fix length checks for swapped clients
    
    ChangeDeviceProperty and XIChangeProperty are followed by some data, so
    use REQUEST_AT_LEAST_SIZE instead of REQUEST_SIZE_MATCH.
    
    X.Org bug#35082 <https://bugs.freedesktop.org/show_bug.cgi?id=35082>
    
    Reported-by: Markus Fleschutz <markus.fleschutz@x-software.com>
    Signed-off-by: Julien Cristau <jcristau@debian.org>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit eb8141b6edd8b477c0ba796be71e985c35520a9b)

diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c
index 17835e2..83ce930 100644
--- a/Xi/xiproperty.c
+++ b/Xi/xiproperty.c
@@ -1051,11 +1051,11 @@ SProcXChangeDeviceProperty (ClientPtr client)
     char n;
     REQUEST(xChangeDevicePropertyReq);
 
+    REQUEST_AT_LEAST_SIZE(xChangeDevicePropertyReq);
     swaps(&stuff->length, n);
     swapl(&stuff->property, n);
     swapl(&stuff->type, n);
     swapl(&stuff->nUnits, n);
-    REQUEST_SIZE_MATCH(xChangeDevicePropertyReq);
     return (ProcXChangeDeviceProperty(client));
 }
 
@@ -1295,12 +1295,12 @@ SProcXIChangeProperty(ClientPtr client)
     char n;
     REQUEST(xXIChangePropertyReq);
 
+    REQUEST_AT_LEAST_SIZE(xXIChangePropertyReq);
     swaps(&stuff->length, n);
     swaps(&stuff->deviceid, n);
     swapl(&stuff->property, n);
     swapl(&stuff->type, n);
     swapl(&stuff->num_items, n);
-    REQUEST_SIZE_MATCH(xXIChangePropertyReq);
     return (ProcXIChangeProperty(client));
 }
 

commit d1caa195abc648560f81356c40f08e7630544db9
Author: Rami Ylimäki <rami.ylimaki@vincit.fi>
Date:   Fri Mar 4 17:55:33 2011 +0200

    config: Ensure that stolen option list elements are released.
    
    NewInputDeviceRequest steals the contents of option list elements but
    doesn't use the elements themselves for anything. Therefore the list
    elements need to be released always.
    
    Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi>
    Reviewed-by: Erkki Seppälä <erkki.seppala@vincit.fi>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 4114533db6704324fc26f28a444415e325ace8e0)

diff --git a/config/hal.c b/config/hal.c
index 0b848a0..297520a 100644
--- a/config/hal.c
+++ b/config/hal.c
@@ -392,10 +392,10 @@ unwind:
     free(driver);
     free(name);
     free(config_info);
-    while (!dev && (tmpo = options)) {
+    while ((tmpo = options)) {
         options = tmpo->next;
-        free(tmpo->key);
-        free(tmpo->value);
+        free(tmpo->key);        /* NULL if dev != NULL */
+        free(tmpo->value);      /* NULL if dev != NULL */
         free(tmpo);
     }
 
diff --git a/config/udev.c b/config/udev.c
index ab27c98..678e47a 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -197,10 +197,10 @@ device_added(struct udev_device *udev_device)
 
  unwind:
     free(config_info);
-    while (!dev && (tmpo = options)) {
+    while ((tmpo = options)) {
         options = tmpo->next;
-        free(tmpo->key);
-        free(tmpo->value);
+        free(tmpo->key);        /* NULL if dev != NULL */
+        free(tmpo->value);      /* NULL if dev != NULL */
         free(tmpo);
     }
 

commit 241de6d72bdda9c925e22538aba4f91643ae0897
Author: Rami Ylimäki <rami.ylimaki@vincit.fi>
Date:   Fri Mar 4 17:55:32 2011 +0200

    dix: Release input device config info when the device disconnects.
    
    Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi>
    Reviewed-by: Erkki Seppälä <erkki.seppala@vincit.fi>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 8d30aff4aa708b9b885d492602ced7493a96a4df)

diff --git a/dix/devices.c b/dix/devices.c
index 89294aa..55f22cb 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -938,6 +938,8 @@ CloseDevice(DeviceIntPtr dev)
     }
 
     free(dev->deviceGrab.sync.event);
+    free(dev->config_info);     /* Allocated in xf86ActivateDevice. */
+    dev->config_info = NULL;
     dixFreeObjectWithPrivates(dev, PRIVATE_DEVICE);
 }
 

commit 6a8313aee3ef06d92d8eba9ed77a963b5c5a9e7a
Author: Rami Ylimäki <rami.ylimaki@vincit.fi>
Date:   Fri Mar 4 17:55:31 2011 +0200

    xkb: Ensure that XKB device private won't leak on device disconnect.
    
    Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi>
    Reviewed-by: Erkki Seppälä <erkki.seppala@vincit.fi>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 40e56d34538f4663426db50893c231a2b5d760dc)

diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
index 8d7c124..8c0c269 100644
--- a/xkb/xkbActions.c
+++ b/xkb/xkbActions.c
@@ -68,20 +68,13 @@ xkbUnwrapProc(DeviceIntPtr device, DeviceHandleProc proc,
 Bool
 XkbInitPrivates(void)
 {
-    return dixRegisterPrivateKey(&xkbDevicePrivateKeyRec, PRIVATE_DEVICE, 0);
+    return dixRegisterPrivateKey(&xkbDevicePrivateKeyRec, PRIVATE_DEVICE, sizeof(xkbDeviceInfoRec));
 }
 
 void
 XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc)
 {
-    xkbDeviceInfoPtr xkbPrivPtr;
-
-    xkbPrivPtr = (xkbDeviceInfoPtr) calloc(1, sizeof(xkbDeviceInfoRec));
-    if (!xkbPrivPtr)
-	return;
-    xkbPrivPtr->unwrapProc = NULL;
-
-    dixSetPrivate(&device->devPrivates, xkbDevicePrivateKey, xkbPrivPtr);
+    xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(device);
     WRAP_PROCESS_INPUT_PROC(device, xkbPrivPtr, proc, xkbUnwrapProc);
 }
 

commit ee23ecc22ecac744ae2933f417f8a10dec938c94
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 14:15:55 2011 +1000

    xfree86: block signals between EnableDevice and first CheckMotion()
    
    Devices usually enable SIGIO processing in EnableDevice. CheckMotion
    initialises the pointer sprite, sends Enter/Leave events, etc. This leaves
    us with a small window where events may be processed without the sprite or
    pointer position (as seen from the protocol) is valid.
    Block signals during this window.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
    (cherry picked from commit 18413f55089623123537c1499b02aa95ca2014d2)

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 74365e1..e3264e6 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -817,15 +817,18 @@ xf86NewInputDevice(InputInfoPtr pInfo, DeviceIntPtr *pdev, BOOL enable)
     /* Enable it if it's properly initialised and we're currently in the VT */
     if (enable && dev->inited && dev->startup && xf86Screens[0]->vtSema)
     {
+        OsBlockSignals();
         EnableDevice(dev, TRUE);
         if (!dev->enabled)
         {
+            OsReleaseSignals();
             xf86Msg(X_ERROR, "Couldn't init device \"%s\"\n", pInfo->name);
             rval = BadMatch;
             goto unwind;
         }
         /* send enter/leave event, update sprite window */
         CheckMotion(NULL, dev);
+        OsReleaseSignals();
     }
 
     *pdev = dev;

commit aef58ce5ba2d4a9140bb4d2860304ae64aa713da
Author: Erkki Seppälä <erkki.seppala@vincit.fi>
Date:   Tue Mar 8 13:29:41 2011 -0500

    xfree86/common: Remove a configScreen leak when conf_screen is NULL
    
    configScreen used a dynamically allocated buffer for XF86ConfScreenRec
    when conf_screen argument was NULL. This pointer was never stored
    anywhere, nor was it released, so this patch makes the function use
    automatically allocated storage in that situation.
    
    [ajax: minor grammar fix]
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Reviewed-by: Rami Ylimäki <rami.ylimaki@vincit.fi>
    Signed-off-by: Erkki Seppälä <erkki.seppala@vincit.fi>
    (cherry picked from commit a19771e4337d1c4600550314bbc42a1495a023ff)

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 9602e89..5312ca6 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -1787,9 +1787,11 @@ configScreen(confScreenPtr screenp, XF86ConfScreenPtr conf_screen, int scrnum,
     XF86ConfDisplayPtr dispptr;
     XF86ConfAdaptorLinkPtr conf_adaptor;
     Bool defaultMonitor = FALSE;
+    XF86ConfScreenRec local_conf_screen;
 
     if (!conf_screen) {
-        conf_screen = xnfcalloc(1, sizeof(XF86ConfScreenRec));
+        memset(&local_conf_screen, 0, sizeof(local_conf_screen));
+        conf_screen = &local_conf_screen;
         conf_screen->scrn_identifier = "Default Screen Section";
         xf86Msg(X_DEFAULT, "No screen section available. Using defaults.\n");
     }

commit efe69b45557368191fbb38555acb06736b09b6cb
Author: Matthieu Herrb <matthieu.herrb@laas.fr>
Date:   Sun Feb 27 20:16:03 2011 +0100


Reply to: