[Glibc-bsd-commits] r1439 - trunk/glibc-2.3-head/sysdeps/kfreebsd/bits

Petr Salinger ps-guest at costa.debian.org
Tue Apr 11 16:07:43 UTC 2006


Author: ps-guest
Date: 2006-04-11 16:07:42 +0000 (Tue, 11 Apr 2006)
New Revision: 1439

Modified:
   trunk/glibc-2.3-head/sysdeps/kfreebsd/bits/socket.h
Log:
* repair struct msghdr and cmsghdr for amd64
	=> fixes sshd with "UsePrivilegeSeparation yes"



Modified: trunk/glibc-2.3-head/sysdeps/kfreebsd/bits/socket.h
===================================================================
--- trunk/glibc-2.3-head/sysdeps/kfreebsd/bits/socket.h	2006-04-11 11:31:51 UTC (rev 1438)
+++ trunk/glibc-2.3-head/sysdeps/kfreebsd/bits/socket.h	2006-04-11 16:07:42 UTC (rev 1439)
@@ -206,10 +206,10 @@
     socklen_t msg_namelen;	/* Length of address data.  */
 
     struct iovec *msg_iov;	/* Vector of data to send/receive into.  */
-    size_t msg_iovlen;		/* Number of elements in the vector.  */
+    int msg_iovlen;		/* Number of elements in the vector.  */
 
     void *msg_control;		/* Ancillary data (eg BSD filedesc passing). */
-    size_t msg_controllen;	/* Ancillary data buffer length.  */
+    socklen_t msg_controllen;	/* Ancillary data buffer length.  */
 
     int msg_flags;		/* Flags in received message.  */
   };
@@ -222,17 +222,10 @@
     int cmsg_level;		/* Originating protocol.  */
     int cmsg_type;		/* Protocol specific type.  */
 #if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
-    __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data.  */
+    __extension__ unsigned char __cmsg_data  __flexarr __attribute__ ((aligned (__alignof__(size_t)))); /* Ancillary data.  */
 #endif
   };
 
-/* Ancillary data object manipulation macros.  */
-#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
-# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
-#else
-# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
-#endif
-
 #define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
 
 #define CMSG_FIRSTHDR(mhdr) \
@@ -245,6 +238,13 @@
 			 + CMSG_ALIGN (sizeof (struct cmsghdr)))
 #define CMSG_LEN(len)   (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
 
+/* Ancillary data object manipulation macros.  */
+#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
+# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
+#else
+# define CMSG_DATA(cmsg) ((unsigned char *) (cmsg) + CMSG_ALIGN(sizeof (struct cmsghdr)))
+#endif
+
 extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
 				      struct cmsghdr *__cmsg) __THROW;
 #ifdef __USE_EXTERN_INLINES




More information about the Glibc-bsd-commits mailing list