Skip to content
Snippets Groups Projects
Commit 1fd7c383 authored by Simon McVittie's avatar Simon McVittie
Browse files

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: https://github.com/containers/bubblewrap/issues/637


Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
parent 33923454
No related branches found
No related tags found
1 merge request!729Optionally emit priority level markers on bubblewrap messages
...@@ -759,7 +759,7 @@ send_pid_on_socket (int sockfd) ...@@ -759,7 +759,7 @@ send_pid_on_socket (int sockfd)
struct msghdr msg = {}; struct msghdr msg = {};
struct iovec iov = { buf, sizeof (buf) }; struct iovec iov = { buf, sizeof (buf) };
const ssize_t control_len_snd = CMSG_SPACE(sizeof(struct ucred)); const ssize_t control_len_snd = CMSG_SPACE(sizeof(struct ucred));
char control_buf_snd[control_len_snd]; _Alignas(struct cmsghdr) char control_buf_snd[control_len_snd];
struct cmsghdr *cmsg; struct cmsghdr *cmsg;
struct ucred cred; struct ucred cred;
...@@ -801,7 +801,7 @@ read_pid_from_socket (int sockfd) ...@@ -801,7 +801,7 @@ read_pid_from_socket (int sockfd)
struct msghdr msg = {}; struct msghdr msg = {};
struct iovec iov = { recv_buf, sizeof (recv_buf) }; struct iovec iov = { recv_buf, sizeof (recv_buf) };
const ssize_t control_len_rcv = CMSG_SPACE(sizeof(struct ucred)); const ssize_t control_len_rcv = CMSG_SPACE(sizeof(struct ucred));
char control_buf_rcv[control_len_rcv]; _Alignas(struct cmsghdr) char control_buf_rcv[control_len_rcv];
struct cmsghdr* cmsg; struct cmsghdr* cmsg;
msg.msg_iov = &iov; msg.msg_iov = &iov;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment