From: Andre Noll Date: Wed, 16 Mar 2016 22:05:56 +0000 (+0100) Subject: Avoid member access within misaligned address for ancillary data buffer. X-Git-Tag: v0.5.6~45^2~2 X-Git-Url: http://git.tuebingen.mpg.de/?a=commitdiff_plain;ds=inline;h=985ba0546ab18eadf73d0a2686029a3ac876c846;hp=985ba0546ab18eadf73d0a2686029a3ac876c846;p=paraslash.git Avoid member access within misaligned address for ancillary data buffer. For glibc-2.23, the CMSG_FIRSTHDR macro is defined as #define CMSG_FIRSTHDR(mhdr) \ ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0) In recv_cred_buffer(), pass_afd() and dispose_fds() the on-stack ancillary data buffer is not necessarily aligned. The pointer is cast to struct cmsghdr *, then dereferenced, resulting in undefined behaviour due to the lack of alignment. This patch asks the compiler to align the ancillary data buffers. ---