Hello community, here is the log from the commit of package xorg-x11 for openSUSE:Factory checked in at Tue Dec 8 12:13:19 CET 2009. -------- --- xorg-x11/xorg-x11.changes 2009-11-14 03:12:09.000000000 +0100 +++ /mounts/work_src_done/STABLE/xorg-x11/xorg-x11.changes 2009-12-05 19:17:45.000000000 +0100 @@ -1,0 +2,16 @@ +Sat Dec 5 19:12:10 CET 2009 - sndirsch@suse.de + +- improved consolekit support in xdm (bnc #556594) + * better error message in 'xdm-consolekit.diff' patch when + console-kit-daemon is not available/running + * added ConsoleKit package to Requires + +------------------------------------------------------------------- +Mon Nov 30 16:39:18 CET 2009 - sndirsch@suse.de + +- 0001-XDM-Add-support-for-clients-that-sent-ipv4-addresses.patch + * XDM: Add support for clients that sent ipv4 addresses to a + dual-stacked host, which obsoletes listen to IPv4 connections + only (bnc #546632) + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- 0001-XDM-Add-support-for-clients-that-sent-ipv4-addresses.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11.spec ++++++ --- /var/tmp/diff_new_pack.lN3kcg/_old 2009-12-08 12:12:46.000000000 +0100 +++ /var/tmp/diff_new_pack.lN3kcg/_new 2009-12-08 12:12:46.000000000 +0100 @@ -26,7 +26,7 @@ %endif Url: http://xorg.freedesktop.org/ Version: 7.4 -Release: 38 +Release: 39 License: MIT License (or similar) BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Utilities @@ -35,7 +35,7 @@ %else Requires: cpp %endif -Requires: %{name}-xauth +Requires: %{name}-xauth ConsoleKit Recommends: dbus-1-x11 Provides: XFree86 xcompmgr xrestop Obsoletes: xcompmgr xrestop @@ -170,6 +170,7 @@ Patch55: xset-spurious-xprint.patch Patch56: xdm-consolekit.diff Patch57: xbacklight_5512e16_Use-Backlight-RandR-property-fall-back-to-legacy.patch +Patch58: 0001-XDM-Add-support-for-clients-that-sent-ipv4-addresses.patch %description This package contains the X.Org core and sample applications. @@ -304,6 +305,7 @@ patch -d mkfontscale-* -p1 -s < %PATCH48 patch -d xdm-* -p1 -s < %PATCH56 patch -d xbacklight-* -p1 -s < %PATCH57 +patch -d xdm-* -p1 -s < %PATCH58 %build ++++++ 0001-XDM-Add-support-for-clients-that-sent-ipv4-addresses.patch ++++++
From 115841a8615a5807e227ccfa07756a58dbe18059 Mon Sep 17 00:00:00 2001 From: Christoph Bartoschek
Date: Sat, 28 Nov 2009 12:00:33 +0100 Subject: [PATCH] XDM: Add support for clients that sent ipv4 addresses to a dual-stacked host
If a client sends an ipv4 address to a dual-stacked xdm that is bound to a ipv6
socket in a forward request, then the packet was silently discarded. Now the
address is encapsulated as a ipv4-mapped address and a response is send back.
---
xdmcp.c | 23 ++++++++++++++++++++---
1 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/xdmcp.c b/xdmcp.c
index 7c91d1e..66a5e0f 100644
--- a/xdmcp.c
+++ b/xdmcp.c
@@ -791,8 +791,8 @@ forward_respond (
{
struct sockaddr_in6 in6_addr;
- if (clientAddress.length != 16 ||
- clientPort.length != 2)
+ if ((clientAddress.length != 16 && clientAddress.length != 4) ||
+ (clientPort.length != 2))
{
goto badAddress;
}
@@ -801,7 +801,24 @@ forward_respond (
in6_addr.sin6_len = sizeof(in6_addr);
# endif
in6_addr.sin6_family = AF_INET6;
- memmove(&in6_addr.sin6_addr,clientAddress.data,clientAddress.length);
+ if (clientAddress.length == 16) {
+ memmove(in6_addr.sin6_addr.s6_addr, clientAddress.data, 16);
+ } else {
+ /* If the client wants to forward the xdm server to an
+ ipv4 hosts it sends an ipv4 address in the forward
+ packet. On dual-stack hosts the packet arrives as a
+ ipv6 packet. To respond to the ipv4 host one has
+ to create an ipv4-mapped address of the form
+
+ ::ffff::xxx.xxx.xxx.xxx
+
+ One example where this is necessary is an ipv4-only
+ thin client that connects to a dual-stacked xdm.
+ */
+ in6_addr.sin6_addr.s6_addr[10] = 0xff;
+ in6_addr.sin6_addr.s6_addr[11] = 0xff;
+ memmove(in6_addr.sin6_addr.s6_addr + 12, clientAddress.data, 4);
+ }
memmove((char *) &in6_addr.sin6_port, clientPort.data, 2);
client = (struct sockaddr *) &in6_addr;
clientlen = sizeof (in6_addr);
--
1.6.5.3
++++++ xdm-consolekit.diff ++++++
--- /var/tmp/diff_new_pack.lN3kcg/_old 2009-12-08 12:12:47.000000000 +0100
+++ /var/tmp/diff_new_pack.lN3kcg/_new 2009-12-08 12:12:47.000000000 +0100
@@ -43,7 +43,7 @@
#ifdef __SCO__
#include