Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > d7c3c882052bc1a8f8949ca86eb820c2 > files > 8

gdm-2.20.1-3mdv2008.0.src.rpm

--- gdm/common/gdm-common.h	(révision 5365)
+++ gdm/common/gdm-common.h	(copie de travail)
@@ -38,6 +38,7 @@
 
 G_BEGIN_DECLS
 
+#define		gdm_sockaddr_len(sa)	(((struct sockaddr *)sa)->sa_family == AF_INET6 ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in))
 
 gboolean     gdm_address_equal        (struct sockaddr_storage *sa,
                                        struct sockaddr_storage *sb);
--- gdm/common/gdm-common.c	(révision 5365)
+++ gdm/common/gdm-common.c	(copie de travail)
@@ -107,7 +107,7 @@
 	host [0] = '\0';
 	serv [0] = '\0';
 	getnameinfo ((const struct sockaddr *)ss,
-		     sizeof (struct sockaddr_storage),
+		     gdm_sockaddr_len(ss),
 		     host, sizeof (host),
 		     serv, sizeof (serv),
 		     NI_NUMERICHOST | NI_NUMERICSERV);
--- gdm/daemon/gdm-xdmcp-manager.c	(révision 5365)
+++ gdm/daemon/gdm-xdmcp-manager.c	(copie de travail)
@@ -762,7 +762,7 @@
 	XdmcpFlush (manager->priv->socket_fd,
 		    &manager->priv->buf,
 		    (XdmcpNetaddr)clnt_sa,
-		    (int)sizeof (struct sockaddr_storage));
+		    (int)gdm_sockaddr_len(clnt_sa));
 
 	g_free (status.data);
 }
@@ -805,7 +805,7 @@
 	XdmcpFlush (manager->priv->socket_fd,
 		    &manager->priv->buf,
 		    (XdmcpNetaddr)clnt_sa,
-		    (int)sizeof (struct sockaddr_storage));
+		    (int)gdm_sockaddr_len(clnt_sa));
 
 	last_time = time (NULL);
 }
@@ -907,7 +907,7 @@
 	XdmcpFlush (manager->priv->socket_fd,
 		    &manager->priv->buf,
 		    (XdmcpNetaddr) sa,
-		    (int)sizeof (struct sockaddr_storage));
+		    (int)gdm_sockaddr_len(clnt_sa));
 
 	g_free (port.data);
 	g_free (address.data);
@@ -1435,7 +1435,7 @@
 	XdmcpFlush (manager->priv->socket_fd,
 		    &manager->priv->buf,
 		    (XdmcpNetaddr)clnt_sa,
-		    (int)sizeof (struct sockaddr_storage));
+		    (int)gdm_sockaddr_len(clnt_sa));
 
 	g_free (address.data);
 }
@@ -1507,7 +1507,7 @@
 	XdmcpFlush (manager->priv->socket_fd,
 		    &manager->priv->buf,
 		    (XdmcpNetaddr)clnt_sa,
-		    (int)sizeof (struct sockaddr_storage));
+		    (int)gdm_sockaddr_len(clnt_sa));
 }
 
 static void
@@ -1655,7 +1655,7 @@
 	XdmcpFlush (manager->priv->socket_fd,
 		    &manager->priv->buf,
 		    (XdmcpNetaddr)clnt_sa,
-		    (int)sizeof (struct sockaddr_storage));
+		    (int)gdm_sockaddr_len(clnt_sa));
 
 	/* Send MANAGED_FORWARD to indicate that the connection
 	 * reached some sort of resolution */
@@ -1805,7 +1805,7 @@
 	XdmcpFlush (manager->priv->socket_fd,
 		    &manager->priv->buf,
 		    (XdmcpNetaddr)clnt_sa,
-		    (int)sizeof (struct sockaddr_storage));
+		    (int)gdm_sockaddr_len(clnt_sa));
 
 	gdm_address_get_info (clnt_sa, &host, NULL);
 	g_debug ("XDMCP: Sending ACCEPT to %s with SessionID=%ld",
@@ -2107,7 +2107,7 @@
 	XdmcpFlush (manager->priv->socket_fd,
 		    &manager->priv->buf,
 		    (XdmcpNetaddr)clnt_sa,
-		    (int)sizeof (struct sockaddr_storage));
+		    (int)gdm_sockaddr_len(clnt_sa));
 }
 
 static void
@@ -2131,7 +2131,7 @@
 	XdmcpFlush (manager->priv->socket_fd,
 		    &manager->priv->buf,
 		    (XdmcpNetaddr)clnt_sa,
-		    (int)sizeof (struct sockaddr_storage));
+		    (int)gdm_sockaddr_len(clnt_sa));
 
 	/*
 	 * This was from a forwarded query quite apparently so
@@ -2384,7 +2384,7 @@
 	XdmcpFlush (manager->priv->socket_fd,
 		    &manager->priv->buf,
 		    (XdmcpNetaddr)clnt_sa,
-		    (int)sizeof (struct sockaddr_storage));
+		    (int)gdm_sockaddr_len(clnt_sa));
 }
 
 static void
--- gdm/daemon/getvt.c	(révision 5365)
+++ gdm/daemon/getvt.c	(copie de travail)
@@ -56,6 +56,9 @@
 	unsigned char *buf;
 	unsigned long num;
 
+	if (display == NULL)
+		return -1;
+
 	prop = XInternAtom (display, "XFree86_VT", False);
 	if (prop == None) {
 	        gdm_debug ("no XFree86_VT atom\n");
--- gdm/daemon/misc.c	(révision 5365)
+++ gdm/daemon/misc.c	(copie de travail)
@@ -920,10 +920,17 @@
 		snprintf (hostbuf, BUFSIZ-1, "localhost");
 	}
 
-	memset (&hints, 0, sizeof (hints));
+	memset (&hints, 0, sizeof (hints)); 
+
 	hints.ai_family = AF_INET;
+
 #ifdef ENABLE_IPV6
-	hints.ai_family |= AF_INET6;
+	hints.ai_family = AF_INET6;
+#endif  
+
+#ifdef ENABLE_IPV6 
+	if (getaddrinfo (hostbuf, NULL, &hints, &result) != 0) {
+		hints.ai_family = AF_INET;
 #endif
 
 	if (getaddrinfo (hostbuf, NULL, &hints, &result) != 0) {
@@ -932,6 +939,9 @@
 		return NULL;
 	}
 
+#ifdef ENABLE_IPV6        
+	}
+#endif    
 	for (res = result; res != NULL; res = res->ai_next) {
 		struct sockaddr_storage *sa;