@@ -1779,6 +1779,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
17791779 assert (path .len >= 0 );
17801780
17811781 struct sockaddr_un * addr = & addrbuf -> un ;
1782+ memset (addr , 0 , sizeof (struct sockaddr_un ));
17821783#ifdef __linux__
17831784 if (path .len == 0 || * (const char * )path .buf == 0 ) {
17841785 /* Linux abstract namespace extension:
@@ -1822,6 +1823,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
18221823 {
18231824 int pid , groups ;
18241825 struct sockaddr_nl * addr = & addrbuf -> nl ;
1826+ memset (addr , 0 , sizeof (struct sockaddr_nl ));
18251827 if (!PyTuple_Check (args )) {
18261828 PyErr_Format (
18271829 PyExc_TypeError ,
@@ -1849,6 +1851,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
18491851 {
18501852 unsigned int node , port ;
18511853 struct sockaddr_qrtr * addr = & addrbuf -> sq ;
1854+ memset (addr , 0 , sizeof (struct sockaddr_qrtr ));
18521855 if (!PyTuple_Check (args )) {
18531856 PyErr_Format (
18541857 PyExc_TypeError ,
@@ -1926,6 +1929,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
19261929 return 0 ;
19271930 }
19281931 struct sockaddr_in * addr = & addrbuf -> in ;
1932+ memset (addr , 0 , sizeof (struct sockaddr_in ));
19291933 result = setipaddr (s -> state , host .buf , (struct sockaddr * )addr ,
19301934 sizeof (* addr ), AF_INET );
19311935 idna_cleanup (& host );
@@ -1971,6 +1975,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
19711975 return 0 ;
19721976 }
19731977 struct sockaddr_in6 * addr = & addrbuf -> in6 ;
1978+ memset (addr , 0 , sizeof (struct sockaddr_in6 ));
19741979 result = setipaddr (s -> state , host .buf , (struct sockaddr * )addr ,
19751980 sizeof (* addr ), AF_INET6 );
19761981 idna_cleanup (& host );
@@ -2028,6 +2033,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
20282033 {
20292034 const char * straddr ;
20302035 struct sockaddr_rc * addr = & addrbuf -> bt_rc ;
2036+ memset (addr , 0 , sizeof (struct sockaddr_rc ));
20312037 _BT_RC_MEMB (addr , family ) = AF_BLUETOOTH ;
20322038#ifdef MS_WINDOWS
20332039 unsigned long channel ;
@@ -2054,6 +2060,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
20542060 case BTPROTO_HCI :
20552061 {
20562062 struct sockaddr_hci * addr = & addrbuf -> bt_hci ;
2063+ memset (addr , 0 , sizeof (struct sockaddr_hci ));
20572064#if defined(__NetBSD__ ) || defined(__DragonFly__ )
20582065 const char * straddr ;
20592066 _BT_HCI_MEMB (addr , family ) = AF_BLUETOOTH ;
@@ -2105,6 +2112,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
21052112 const char * straddr ;
21062113
21072114 struct sockaddr_sco * addr = & addrbuf -> bt_sco ;
2115+ memset (addr , 0 , sizeof (struct sockaddr_sco ));
21082116 _BT_SCO_MEMB (addr , family ) = AF_BLUETOOTH ;
21092117 if (!PyBytes_Check (args )) {
21102118 PyErr_Format (PyExc_OSError ,
@@ -2182,6 +2190,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
21822190 return 0 ;
21832191 }
21842192 struct sockaddr_ll * addr = & addrbuf -> ll ;
2193+ memset (addr , 0 , sizeof (struct sockaddr_ll ));
21852194 addr -> sll_family = AF_PACKET ;
21862195 addr -> sll_protocol = htons ((short )protoNumber );
21872196 addr -> sll_ifindex = ifr .ifr_ifindex ;
@@ -2266,6 +2275,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
22662275 struct ifreq ifr ;
22672276 Py_ssize_t len ;
22682277 struct sockaddr_can * addr = & addrbuf -> can ;
2278+ memset (addr , 0 , sizeof (struct sockaddr_can ));
22692279
22702280 if (!PyTuple_Check (args )) {
22712281 PyErr_Format (PyExc_TypeError ,
@@ -2318,6 +2328,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
23182328 unsigned long int rx_id , tx_id ;
23192329
23202330 struct sockaddr_can * addr = & addrbuf -> can ;
2331+ memset (addr , 0 , sizeof (struct sockaddr_can ));
23212332
23222333 if (!PyArg_ParseTuple (args , "O&kk" , PyUnicode_FSConverter ,
23232334 & interfaceName ,
@@ -2365,6 +2376,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
23652376 uint8_t j1939_addr ;
23662377
23672378 struct sockaddr_can * addr = & addrbuf -> can ;
2379+ memset (addr , 0 , sizeof (struct sockaddr_can ));
23682380
23692381 if (!PyArg_ParseTuple (args , "O&KIB" , PyUnicode_FSConverter ,
23702382 & interfaceName ,
@@ -2417,6 +2429,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
24172429 case SYSPROTO_CONTROL :
24182430 {
24192431 struct sockaddr_ctl * addr = & addrbuf -> ctl ;
2432+ memset (addr , 0 , sizeof (struct sockaddr_ctl ));
24202433 addr -> sc_family = AF_SYSTEM ;
24212434 addr -> ss_sysaddr = AF_SYS_CONTROL ;
24222435
0 commit comments