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