@@ -1820,6 +1820,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
18201820 assert (path .len >= 0 );
18211821
18221822 struct sockaddr_un * addr = & addrbuf -> un ;
1823+ memset (addr , 0 , sizeof (struct sockaddr_un ));
18231824#ifdef __linux__
18241825 if (path .len == 0 || * (const char * )path .buf == 0 ) {
18251826 /* Linux abstract namespace extension:
@@ -1863,6 +1864,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
18631864 {
18641865 int pid , groups ;
18651866 struct sockaddr_nl * addr = & addrbuf -> nl ;
1867+ memset (addr , 0 , sizeof (struct sockaddr_nl ));
18661868 if (!PyTuple_Check (args )) {
18671869 PyErr_Format (
18681870 PyExc_TypeError ,
@@ -1890,6 +1892,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
18901892 {
18911893 unsigned int node , port ;
18921894 struct sockaddr_qrtr * addr = & addrbuf -> sq ;
1895+ memset (addr , 0 , sizeof (struct sockaddr_qrtr ));
18931896 if (!PyTuple_Check (args )) {
18941897 PyErr_Format (
18951898 PyExc_TypeError ,
@@ -1969,6 +1972,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
19691972 return 0 ;
19701973 }
19711974 struct sockaddr_in * addr = & addrbuf -> in ;
1975+ memset (addr , 0 , sizeof (struct sockaddr_in ));
19721976 result = setipaddr (s -> state , host .buf , (struct sockaddr * )addr ,
19731977 sizeof (* addr ), AF_INET );
19741978 idna_cleanup (& host );
@@ -2014,6 +2018,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
20142018 return 0 ;
20152019 }
20162020 struct sockaddr_in6 * addr = & addrbuf -> in6 ;
2021+ memset (addr , 0 , sizeof (struct sockaddr_in6 ));
20172022 result = setipaddr (s -> state , host .buf , (struct sockaddr * )addr ,
20182023 sizeof (* addr ), AF_INET6 );
20192024 idna_cleanup (& host );
@@ -2078,6 +2083,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
20782083 {
20792084 const char * straddr ;
20802085 struct sockaddr_rc * addr = & addrbuf -> bt_rc ;
2086+ memset (addr , 0 , sizeof (struct sockaddr_rc ));
20812087 _BT_RC_MEMB (addr , family ) = AF_BLUETOOTH ;
20822088#ifdef MS_WINDOWS
20832089 unsigned long channel ;
@@ -2104,6 +2110,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
21042110 case BTPROTO_HCI :
21052111 {
21062112 struct sockaddr_hci * addr = & addrbuf -> bt_hci ;
2113+ memset (addr , 0 , sizeof (struct sockaddr_hci ));
21072114#if defined(__NetBSD__ ) || defined(__DragonFly__ )
21082115 const char * straddr ;
21092116 _BT_HCI_MEMB (addr , family ) = AF_BLUETOOTH ;
@@ -2155,6 +2162,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
21552162 const char * straddr ;
21562163
21572164 struct sockaddr_sco * addr = & addrbuf -> bt_sco ;
2165+ memset (addr , 0 , sizeof (struct sockaddr_sco ));
21582166 _BT_SCO_MEMB (addr , family ) = AF_BLUETOOTH ;
21592167 if (!PyBytes_Check (args )) {
21602168 PyErr_Format (PyExc_OSError ,
@@ -2232,6 +2240,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
22322240 return 0 ;
22332241 }
22342242 struct sockaddr_ll * addr = & addrbuf -> ll ;
2243+ memset (addr , 0 , sizeof (struct sockaddr_ll ));
22352244 addr -> sll_family = AF_PACKET ;
22362245 addr -> sll_protocol = htons ((short )protoNumber );
22372246 addr -> sll_ifindex = ifr .ifr_ifindex ;
@@ -2318,6 +2327,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
23182327 struct ifreq ifr ;
23192328 Py_ssize_t len ;
23202329 struct sockaddr_can * addr = & addrbuf -> can ;
2330+ memset (addr , 0 , sizeof (struct sockaddr_can ));
23212331
23222332 if (!PyTuple_Check (args )) {
23232333 PyErr_Format (PyExc_TypeError ,
@@ -2370,6 +2380,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
23702380 unsigned long int rx_id , tx_id ;
23712381
23722382 struct sockaddr_can * addr = & addrbuf -> can ;
2383+ memset (addr , 0 , sizeof (struct sockaddr_can ));
23732384
23742385 if (!PyArg_ParseTuple (args , "O&kk" , PyUnicode_FSConverter ,
23752386 & interfaceName ,
@@ -2417,6 +2428,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
24172428 uint8_t j1939_addr ;
24182429
24192430 struct sockaddr_can * addr = & addrbuf -> can ;
2431+ memset (addr , 0 , sizeof (struct sockaddr_can ));
24202432
24212433 if (!PyArg_ParseTuple (args , "O&KIB" , PyUnicode_FSConverter ,
24222434 & interfaceName ,
@@ -2469,6 +2481,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
24692481 case SYSPROTO_CONTROL :
24702482 {
24712483 struct sockaddr_ctl * addr = & addrbuf -> ctl ;
2484+ memset (addr , 0 , sizeof (struct sockaddr_ctl ));
24722485 addr -> sc_family = AF_SYSTEM ;
24732486 addr -> ss_sysaddr = AF_SYS_CONTROL ;
24742487
0 commit comments