| From cbcd19f38ae4b31c57c57ce3619b8d2674defb68 Mon Sep 17 00:00:00 2001 |
| From: Khem Raj <raj.khem@gmail.com> |
| Date: Sun, 28 Aug 2022 08:11:27 -0700 |
| Subject: [PATCH] netifaces: initialize msghdr in a portable way |
| |
| musl has padding bytes inside the msghdr struct which means initializing |
| full structure will cause wrong assignments, doing partial assignment is |
| more portable and assign the elements after that |
| |
| Fixes |
| netifaces.c:1808:9: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion] |
| NULL, |
| ^~~~ |
| |
| Upstream-Status: Inappropriate [Upstream Repo is read-only] |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| --- |
| netifaces.c | 15 ++++++--------- |
| 1 file changed, 6 insertions(+), 9 deletions(-) |
| |
| diff --git a/netifaces.c b/netifaces.c |
| index 839c42c..7da78e7 100644 |
| --- a/netifaces.c |
| +++ b/netifaces.c |
| @@ -1800,15 +1800,12 @@ gateways (PyObject *self) |
| do { |
| struct sockaddr_nl sanl_from; |
| struct iovec iov = { msgbuf, bufsize }; |
| - struct msghdr msghdr = { |
| - &sanl_from, |
| - sizeof(sanl_from), |
| - &iov, |
| - 1, |
| - NULL, |
| - 0, |
| - 0 |
| - }; |
| + struct msghdr msghdr = { 0 }; |
| + |
| + msghdr.msg_name = &sanl_from; |
| + msghdr.msg_namelen = sizeof(sanl_from); |
| + msghdr.msg_iov = &iov; |
| + msghdr.msg_iovlen = 1; |
| int nllen; |
| |
| ret = recvmsg (s, &msghdr, 0); |
| -- |
| 2.37.2 |
| |