@@ -1779,6 +1779,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
1779
1779
assert (path .len >=0 );
1780
1780
1781
1781
struct sockaddr_un * addr = & addrbuf -> un ;
1782
+ memset (addr ,0 ,sizeof (struct sockaddr_un ));
1782
1783
#ifdef __linux__
1783
1784
if (path .len == 0 || * (const char * )path .buf == 0 ) {
1784
1785
/* Linux abstract namespace extension:
@@ -1822,6 +1823,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
1822
1823
{
1823
1824
int pid ,groups ;
1824
1825
struct sockaddr_nl * addr = & addrbuf -> nl ;
1826
+ memset (addr ,0 ,sizeof (struct sockaddr_nl ));
1825
1827
if (!PyTuple_Check (args )) {
1826
1828
PyErr_Format (
1827
1829
PyExc_TypeError ,
@@ -1849,6 +1851,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
1849
1851
{
1850
1852
unsignedint node ,port ;
1851
1853
struct sockaddr_qrtr * addr = & addrbuf -> sq ;
1854
+ memset (addr ,0 ,sizeof (struct sockaddr_qrtr ));
1852
1855
if (!PyTuple_Check (args )) {
1853
1856
PyErr_Format (
1854
1857
PyExc_TypeError ,
@@ -1926,6 +1929,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
1926
1929
return 0 ;
1927
1930
}
1928
1931
struct sockaddr_in * addr = & addrbuf -> in ;
1932
+ memset (addr ,0 ,sizeof (struct sockaddr_in ));
1929
1933
result = setipaddr (s -> state ,host .buf , (struct sockaddr * )addr ,
1930
1934
sizeof (* addr ),AF_INET );
1931
1935
idna_cleanup (& host );
@@ -1971,6 +1975,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
1971
1975
return 0 ;
1972
1976
}
1973
1977
struct sockaddr_in6 * addr = & addrbuf -> in6 ;
1978
+ memset (addr ,0 ,sizeof (struct sockaddr_in6 ));
1974
1979
result = setipaddr (s -> state ,host .buf , (struct sockaddr * )addr ,
1975
1980
sizeof (* addr ),AF_INET6 );
1976
1981
idna_cleanup (& host );
@@ -2028,6 +2033,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2028
2033
{
2029
2034
const char * straddr ;
2030
2035
struct sockaddr_rc * addr = & addrbuf -> bt_rc ;
2036
+ memset (addr ,0 ,sizeof (struct sockaddr_rc ));
2031
2037
_BT_RC_MEMB (addr ,family )= AF_BLUETOOTH ;
2032
2038
#ifdef MS_WINDOWS
2033
2039
unsigned long channel ;
@@ -2054,6 +2060,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2054
2060
case BTPROTO_HCI :
2055
2061
{
2056
2062
struct sockaddr_hci * addr = & addrbuf -> bt_hci ;
2063
+ memset (addr ,0 ,sizeof (struct sockaddr_hci ));
2057
2064
#if defined(__NetBSD__ )|| defined(__DragonFly__ )
2058
2065
const char * straddr ;
2059
2066
_BT_HCI_MEMB (addr ,family )= AF_BLUETOOTH ;
@@ -2105,6 +2112,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2105
2112
const char * straddr ;
2106
2113
2107
2114
struct sockaddr_sco * addr = & addrbuf -> bt_sco ;
2115
+ memset (addr ,0 ,sizeof (struct sockaddr_sco ));
2108
2116
_BT_SCO_MEMB (addr ,family )= AF_BLUETOOTH ;
2109
2117
if (!PyBytes_Check (args )) {
2110
2118
PyErr_Format (PyExc_OSError ,
@@ -2182,6 +2190,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2182
2190
return 0 ;
2183
2191
}
2184
2192
struct sockaddr_ll * addr = & addrbuf -> ll ;
2193
+ memset (addr ,0 ,sizeof (struct sockaddr_ll ));
2185
2194
addr -> sll_family = AF_PACKET ;
2186
2195
addr -> sll_protocol = htons ((short )protoNumber );
2187
2196
addr -> sll_ifindex = ifr .ifr_ifindex ;
@@ -2266,6 +2275,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2266
2275
struct ifreq ifr ;
2267
2276
Py_ssize_t len ;
2268
2277
struct sockaddr_can * addr = & addrbuf -> can ;
2278
+ memset (addr ,0 ,sizeof (struct sockaddr_can ));
2269
2279
2270
2280
if (!PyTuple_Check (args )) {
2271
2281
PyErr_Format (PyExc_TypeError ,
@@ -2318,6 +2328,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2318
2328
unsigned longint rx_id ,tx_id ;
2319
2329
2320
2330
struct sockaddr_can * addr = & addrbuf -> can ;
2331
+ memset (addr ,0 ,sizeof (struct sockaddr_can ));
2321
2332
2322
2333
if (!PyArg_ParseTuple (args ,"O&kk" ,PyUnicode_FSConverter ,
2323
2334
& interfaceName ,
@@ -2365,6 +2376,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2365
2376
uint8_t j1939_addr ;
2366
2377
2367
2378
struct sockaddr_can * addr = & addrbuf -> can ;
2379
+ memset (addr ,0 ,sizeof (struct sockaddr_can ));
2368
2380
2369
2381
if (!PyArg_ParseTuple (args ,"O&KIB" ,PyUnicode_FSConverter ,
2370
2382
& interfaceName ,
@@ -2417,6 +2429,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2417
2429
case SYSPROTO_CONTROL :
2418
2430
{
2419
2431
struct sockaddr_ctl * addr = & addrbuf -> ctl ;
2432
+ memset (addr ,0 ,sizeof (struct sockaddr_ctl ));
2420
2433
addr -> sc_family = AF_SYSTEM ;
2421
2434
addr -> ss_sysaddr = AF_SYS_CONTROL ;
2422
2435