[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