1From cbcd19f38ae4b31c57c57ce3619b8d2674defb68 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 28 Aug 2022 08:11:27 -0700
4Subject: [PATCH] netifaces: initialize msghdr in a portable way
5
6musl has padding bytes inside the msghdr struct which means initializing
7full structure will cause wrong assignments, doing partial assignment is
8more portable and assign the elements after that
9
10Fixes
11netifaces.c:1808:9: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
12        NULL,
13        ^~~~
14
15Upstream-Status: Inappropriate [Upstream Repo is read-only]
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17---
18 netifaces.c | 15 ++++++---------
19 1 file changed, 6 insertions(+), 9 deletions(-)
20
21diff --git a/netifaces.c b/netifaces.c
22index 839c42c..7da78e7 100644
23--- a/netifaces.c
24+++ b/netifaces.c
25@@ -1800,15 +1800,12 @@ gateways (PyObject *self)
26     do {
27       struct sockaddr_nl sanl_from;
28       struct iovec iov = { msgbuf, bufsize };
29-      struct msghdr msghdr = {
30-        &sanl_from,
31-        sizeof(sanl_from),
32-        &iov,
33-        1,
34-        NULL,
35-        0,
36-        0
37-      };
38+      struct msghdr msghdr = { 0 };
39+
40+      msghdr.msg_name = &sanl_from;
41+      msghdr.msg_namelen = sizeof(sanl_from);
42+      msghdr.msg_iov = &iov;
43+      msghdr.msg_iovlen = 1;
44       int nllen;
45
46       ret = recvmsg (s, &msghdr, 0);
47--
482.37.2
49
50