if (payload_size < g->slice_bytes)
memset(fc->extra_header_buf + payload_size, 0,
g->slice_bytes - payload_size);
- fc->src_data[i] = fc->extra_header_buf;
- assert(i == g->num_header_slices - 1);
+ /*
+ * There might be more than one header slice to fill although
+ * only the first one will be used. Set all header slices to
+ * our extra buffer.
+ */
+ while (i < g->num_header_slices)
+ fc->src_data[i++] = fc->extra_header_buf;
+ break; /* we don't want i to be increased. */
}
/*
static int recv_afs_msg(int afs_socket, int *fd, uint32_t *code, uint32_t *data)
{
- char control[255], buf[8];
+ char control[255] __a_aligned(8), buf[8];
struct msghdr msg = {.msg_iov = NULL};
struct cmsghdr *cmsg;
struct iovec iov;