@@ -1788,6 +1788,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
17881788 assert (path .len >= 0 );
17891789
17901790 struct sockaddr_un * addr = & addrbuf -> un ;
1791+ memset (addr , 0 , sizeof (struct sockaddr_un ));
17911792#ifdef __linux__
17921793 if (path .len == 0 || * (const char * )path .buf == 0 ) {
17931794 /* Linux abstract namespace extension:
@@ -1831,6 +1832,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
18311832 {
18321833 int pid , groups ;
18331834 struct sockaddr_nl * addr = & addrbuf -> nl ;
1835+ memset (addr , 0 , sizeof (struct sockaddr_nl ));
18341836 if (!PyTuple_Check (args )) {
18351837 PyErr_Format (
18361838 PyExc_TypeError ,
@@ -1858,6 +1860,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
18581860 {
18591861 unsigned int node , port ;
18601862 struct sockaddr_qrtr * addr = & addrbuf -> sq ;
1863+ memset (addr , 0 , sizeof (struct sockaddr_qrtr ));
18611864 if (!PyTuple_Check (args )) {
18621865 PyErr_Format (
18631866 PyExc_TypeError ,
@@ -1935,6 +1938,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
19351938 return 0 ;
19361939 }
19371940 struct sockaddr_in * addr = & addrbuf -> in ;
1941+ memset (addr , 0 , sizeof (struct sockaddr_in ));
19381942 result = setipaddr (s -> state , host .buf , (struct sockaddr * )addr ,
19391943 sizeof (* addr ), AF_INET );
19401944 idna_cleanup (& host );
@@ -1980,6 +1984,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
19801984 return 0 ;
19811985 }
19821986 struct sockaddr_in6 * addr = & addrbuf -> in6 ;
1987+ memset (addr , 0 , sizeof (struct sockaddr_in6 ));
19831988 result = setipaddr (s -> state , host .buf , (struct sockaddr * )addr ,
19841989 sizeof (* addr ), AF_INET6 );
19851990 idna_cleanup (& host );
@@ -2037,6 +2042,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
20372042 {
20382043 const char * straddr ;
20392044 struct sockaddr_rc * addr = & addrbuf -> bt_rc ;
2045+ memset (addr , 0 , sizeof (struct sockaddr_rc ));
20402046 _BT_RC_MEMB (addr , family ) = AF_BLUETOOTH ;
20412047#ifdef MS_WINDOWS
20422048 unsigned long channel ;
@@ -2063,6 +2069,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
20632069 case BTPROTO_HCI :
20642070 {
20652071 struct sockaddr_hci * addr = & addrbuf -> bt_hci ;
2072+ memset (addr , 0 , sizeof (struct sockaddr_hci ));
20662073#if defined(__NetBSD__ ) || defined(__DragonFly__ )
20672074 const char * straddr ;
20682075 _BT_HCI_MEMB (addr , family ) = AF_BLUETOOTH ;
@@ -2114,6 +2121,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
21142121 const char * straddr ;
21152122
21162123 struct sockaddr_sco * addr = & addrbuf -> bt_sco ;
2124+ memset (addr , 0 , sizeof (struct sockaddr_sco ));
21172125 _BT_SCO_MEMB (addr , family ) = AF_BLUETOOTH ;
21182126 if (!PyBytes_Check (args )) {
21192127 PyErr_Format (PyExc_OSError ,
@@ -2191,6 +2199,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
21912199 return 0 ;
21922200 }
21932201 struct sockaddr_ll * addr = & addrbuf -> ll ;
2202+ memset (addr , 0 , sizeof (struct sockaddr_ll ));
21942203 addr -> sll_family = AF_PACKET ;
21952204 addr -> sll_protocol = htons ((short )protoNumber );
21962205 addr -> sll_ifindex = ifr .ifr_ifindex ;
@@ -2275,6 +2284,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
22752284 struct ifreq ifr ;
22762285 Py_ssize_t len ;
22772286 struct sockaddr_can * addr = & addrbuf -> can ;
2287+ memset (addr , 0 , sizeof (struct sockaddr_can ));
22782288
22792289 if (!PyTuple_Check (args )) {
22802290 PyErr_Format (PyExc_TypeError ,
@@ -2327,6 +2337,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
23272337 unsigned long int rx_id , tx_id ;
23282338
23292339 struct sockaddr_can * addr = & addrbuf -> can ;
2340+ memset (addr , 0 , sizeof (struct sockaddr_can ));
23302341
23312342 if (!PyArg_ParseTuple (args , "O&kk" , PyUnicode_FSConverter ,
23322343 & interfaceName ,
@@ -2374,6 +2385,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
23742385 uint8_t j1939_addr ;
23752386
23762387 struct sockaddr_can * addr = & addrbuf -> can ;
2388+ memset (addr , 0 , sizeof (struct sockaddr_can ));
23772389
23782390 if (!PyArg_ParseTuple (args , "O&KIB" , PyUnicode_FSConverter ,
23792391 & interfaceName ,
@@ -2426,6 +2438,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
24262438 case SYSPROTO_CONTROL :
24272439 {
24282440 struct sockaddr_ctl * addr = & addrbuf -> ctl ;
2441+ memset (addr , 0 , sizeof (struct sockaddr_ctl ));
24292442 addr -> sc_family = AF_SYSTEM ;
24302443 addr -> ss_sysaddr = AF_SYS_CONTROL ;
24312444
0 commit comments