On Wed, Feb 05, 2025 at 05:00:06PM +0100, Stefano Brivio wrote:
When building against musl headers:
- sizeof() needs sttdef.h, as it should be;
- we can't initialise a struct msghdr by simply listing fields in order, as they contain explicit padding fields. Use field names instead.
Signed-off-by: Stefano Brivio
Reviewed-by: David Gibson
--- passt-repair.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/passt-repair.c b/passt-repair.c index 6f79423..3c3247b 100644 --- a/passt-repair.c +++ b/passt-repair.c @@ -21,6 +21,7 @@ #include
#include #include +#include #include #include #include @@ -75,7 +76,11 @@ int main(int argc, char **argv) } iov = (struct iovec){ &cmd, sizeof(cmd) }; - msg = (struct msghdr){ NULL, 0, &iov, 1, buf, sizeof(buf), 0 }; + msg = (struct msghdr){ .msg_name = NULL, .msg_namelen = 0, + .msg_iov = &iov, .msg_iovlen = 1, + .msg_control = buf, + .msg_controllen = sizeof(buf), + .msg_flags = 0 }; cmsg = CMSG_FIRSTHDR(&msg);
if (argc != 2) {
-- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson