Skip to content

Commit 1fd7c38

Browse files
committed
utils: Ensure that the buffer for struct cmsghdr is suitably-aligned
A char array on the stack is not guaranteed to have any particular alignment. Resolves: #637 Signed-off-by: Simon McVittie <smcv@collabora.com>
1 parent 3392345 commit 1fd7c38

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

utils.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -759,7 +759,7 @@ send_pid_on_socket (int sockfd)
759759
struct msghdr msg = {};
760760
struct iovec iov = { buf, sizeof (buf) };
761761
const ssize_t control_len_snd = CMSG_SPACE(sizeof(struct ucred));
762-
char control_buf_snd[control_len_snd];
762+
_Alignas(struct cmsghdr) char control_buf_snd[control_len_snd];
763763
struct cmsghdr *cmsg;
764764
struct ucred cred;
765765

@@ -801,7 +801,7 @@ read_pid_from_socket (int sockfd)
801801
struct msghdr msg = {};
802802
struct iovec iov = { recv_buf, sizeof (recv_buf) };
803803
const ssize_t control_len_rcv = CMSG_SPACE(sizeof(struct ucred));
804-
char control_buf_rcv[control_len_rcv];
804+
_Alignas(struct cmsghdr) char control_buf_rcv[control_len_rcv];
805805
struct cmsghdr* cmsg;
806806

807807
msg.msg_iov = &iov;

0 commit comments

Comments
 (0)