From 1f79540e64bab3cb4f0835b1239985d64029a029 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Nov 14 2012 17:46:28 +0000 Subject: Update to 3.6.2 --- diff --git a/.gitignore b/.gitignore index a2bdc1b..e634e8f 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ gdm-2.30.2.tar.bz2 /gdm-3.5.92.1.tar.xz /gdm-3.6.0.tar.xz /gdm-3.6.1.tar.xz +/gdm-3.6.2.tar.xz diff --git a/fix-crasher.patch b/fix-crasher.patch deleted file mode 100644 index d15fa44..0000000 --- a/fix-crasher.patch +++ /dev/null @@ -1,147 +0,0 @@ -From eaabecd70f79c89f6bfd912557c0cbb7718d4c63 Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Mon, 5 Nov 2012 17:07:05 -0500 -Subject: [PATCH] daemon: allow NULs in X11 cookie - -We currently allow the slave access to its X server via two -mechanisms: - -1) we set XAUTHORITY to point to the X servers Xauthority file -2) we call XSetAuthorization with the cookie from the Xauthority file - -1) may fail if the user's hostname changes at the wrong moment, and -a bug in the code meant that 2 would fail if NULs are encoded in the -auth cookie. - -This commit fixes 2) to work with embedded NUL bytes. - -https://bugzilla.gnome.org/show_bug.cgi?id=687691 ---- - daemon/gdm-display.c | 7 ++++++- - daemon/gdm-display.xml | 4 +++- - daemon/gdm-slave.c | 38 ++++++++++++++++++++++++++++---------- - 3 files changed, 37 insertions(+), 12 deletions(-) - -diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c -index 42f5990..435dc1c 100644 ---- a/daemon/gdm-display.c -+++ b/daemon/gdm-display.c -@@ -1106,10 +1106,15 @@ handle_get_x11_cookie (GdmDBusDisplay *skeleton, - GdmDisplay *display) - { - GArray *cookie = NULL; -+ GVariant *variant; - - gdm_display_get_x11_cookie (display, &cookie, NULL); - -- gdm_dbus_display_complete_get_x11_cookie (skeleton, invocation, cookie->data); -+ variant = g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE, -+ cookie->data, -+ cookie->len, -+ sizeof (char)); -+ gdm_dbus_display_complete_get_x11_cookie (skeleton, invocation, variant); - - g_array_unref (cookie); - return TRUE; -diff --git a/daemon/gdm-display.xml b/daemon/gdm-display.xml -index 904e0ae..48d03db 100644 ---- a/daemon/gdm-display.xml -+++ b/daemon/gdm-display.xml -@@ -11,7 +11,9 @@ - - - -- -+ -+ -+ - - - -diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c -index 948406a..15df03a 100644 ---- a/daemon/gdm-slave.c -+++ b/daemon/gdm-slave.c -@@ -98,7 +98,7 @@ struct GdmSlavePrivate - char *parent_display_name; - char *parent_display_x11_authority_file; - char *windowpath; -- char *display_x11_cookie; -+ GBytes *display_x11_cookie; - gboolean display_is_initial; - - GdmDBusDisplay *display_proxy; -@@ -665,10 +665,13 @@ gdm_slave_connect_to_x11_display (GdmSlave *slave) - sigprocmask (SIG_BLOCK, &mask, &omask); - - /* Give slave access to the display independent of current hostname */ -- XSetAuthorization ("MIT-MAGIC-COOKIE-1", -- strlen ("MIT-MAGIC-COOKIE-1"), -- slave->priv->display_x11_cookie, -- strlen (slave->priv->display_x11_cookie)); -+ if (slave->priv->display_x11_cookie != NULL) { -+ XSetAuthorization ("MIT-MAGIC-COOKIE-1", -+ strlen ("MIT-MAGIC-COOKIE-1"), -+ (gpointer) -+ g_bytes_get_data (slave->priv->display_x11_cookie, NULL), -+ g_bytes_get_size (slave->priv->display_x11_cookie)); -+ } - - slave->priv->server_display = XOpenDisplay (slave->priv->display_name); - -@@ -736,9 +739,12 @@ gdm_slave_set_slave_bus_name (GdmSlave *slave) - static gboolean - gdm_slave_real_start (GdmSlave *slave) - { -- gboolean res; -- char *id; -- GError *error; -+ gboolean res; -+ char *id; -+ GError *error; -+ GVariant *x11_cookie; -+ const char *x11_cookie_bytes; -+ gsize x11_cookie_size; - - g_debug ("GdmSlave: Starting slave"); - -@@ -826,7 +832,7 @@ gdm_slave_real_start (GdmSlave *slave) - - error = NULL; - res = gdm_dbus_display_call_get_x11_cookie_sync (slave->priv->display_proxy, -- &slave->priv->display_x11_cookie, -+ &x11_cookie, - NULL, - &error); - if (! res) { -@@ -835,6 +841,18 @@ gdm_slave_real_start (GdmSlave *slave) - return FALSE; - } - -+ x11_cookie_bytes = g_variant_get_fixed_array (x11_cookie, -+ &x11_cookie_size, -+ sizeof (char)); -+ -+ if (x11_cookie_bytes != NULL && x11_cookie_size > 0) { -+ g_bytes_unref (slave->priv->display_x11_cookie); -+ slave->priv->display_x11_cookie = g_bytes_new (x11_cookie_bytes, -+ x11_cookie_size); -+ } -+ -+ g_variant_unref (x11_cookie); -+ - error = NULL; - res = gdm_dbus_display_call_get_x11_authority_file_sync (slave->priv->display_proxy, - &slave->priv->display_x11_authority_file, -@@ -2175,7 +2193,7 @@ gdm_slave_finalize (GObject *object) - g_free (slave->priv->parent_display_name); - g_free (slave->priv->parent_display_x11_authority_file); - g_free (slave->priv->windowpath); -- g_free (slave->priv->display_x11_cookie); -+ g_bytes_unref (slave->priv->display_x11_cookie); - - G_OBJECT_CLASS (gdm_slave_parent_class)->finalize (object); - } --- -1.7.12.1 - diff --git a/gdm.spec b/gdm.spec index 8fcd860..eda892a 100644 --- a/gdm.spec +++ b/gdm.spec @@ -9,8 +9,8 @@ Summary: The GNOME Display Manager Name: gdm -Version: 3.6.1 -Release: 4%{?dist} +Version: 3.6.2 +Release: 1%{?dist} Epoch: 1 License: GPLv2+ Group: User Interface/X @@ -92,8 +92,6 @@ Provides: gdm-plugin-smartcard = %{epoch}:%{version}-%{release} Obsoletes: gdm-plugin-fingerprint < 1:3.2.1 Provides: gdm-plugin-fingerprint = %{epoch}:%{version}-%{release} -Patch0: fix-crasher.patch - %package libs Summary: Client-side library to talk to gdm Group: Development/Libraries @@ -121,7 +119,6 @@ Development files and headers for writing GDM greeters. %prep %setup -q -%patch0 -p1 -b .fix-crasher autoreconf -i -f intltoolize -f @@ -350,6 +347,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >&/dev/null || : %{_libdir}/girepository-1.0/Gdm-1.0.typelib %changelog +* Wed Nov 14 2012 Kalev Lember - 1:3.6.2-1 +- Update to 3.6.2 + * Mon Nov 05 2012 Ray Strode - 1:3.6.1-4 - Fix GDM auth cookie problem Related: #870695 diff --git a/sources b/sources index 53f8b7f..c65d26b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5f2ef52abd8ba9a1069d4eb401f99f48 gdm-3.6.1.tar.xz +b1924268d1515b8b947acbbe49d72292 gdm-3.6.2.tar.xz