@@ -1820,6 +1820,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
1820
1820
assert (path .len >= 0 );
1821
1821
1822
1822
struct sockaddr_un * addr = & addrbuf -> un ;
1823
+ memset (addr , 0 , sizeof (struct sockaddr_un ));
1823
1824
#ifdef __linux__
1824
1825
if (path .len == 0 || * (const char * )path .buf == 0 ) {
1825
1826
/* Linux abstract namespace extension:
@@ -1863,6 +1864,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
1863
1864
{
1864
1865
int pid , groups ;
1865
1866
struct sockaddr_nl * addr = & addrbuf -> nl ;
1867
+ memset (addr , 0 , sizeof (struct sockaddr_nl ));
1866
1868
if (!PyTuple_Check (args )) {
1867
1869
PyErr_Format (
1868
1870
PyExc_TypeError ,
@@ -1890,6 +1892,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
1890
1892
{
1891
1893
unsigned int node , port ;
1892
1894
struct sockaddr_qrtr * addr = & addrbuf -> sq ;
1895
+ memset (addr , 0 , sizeof (struct sockaddr_qrtr ));
1893
1896
if (!PyTuple_Check (args )) {
1894
1897
PyErr_Format (
1895
1898
PyExc_TypeError ,
@@ -1969,6 +1972,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
1969
1972
return 0 ;
1970
1973
}
1971
1974
struct sockaddr_in * addr = & addrbuf -> in ;
1975
+ memset (addr , 0 , sizeof (struct sockaddr_in ));
1972
1976
result = setipaddr (s -> state , host .buf , (struct sockaddr * )addr ,
1973
1977
sizeof (* addr ), AF_INET );
1974
1978
idna_cleanup (& host );
@@ -2014,6 +2018,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2014
2018
return 0 ;
2015
2019
}
2016
2020
struct sockaddr_in6 * addr = & addrbuf -> in6 ;
2021
+ memset (addr , 0 , sizeof (struct sockaddr_in6 ));
2017
2022
result = setipaddr (s -> state , host .buf , (struct sockaddr * )addr ,
2018
2023
sizeof (* addr ), AF_INET6 );
2019
2024
idna_cleanup (& host );
@@ -2078,6 +2083,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2078
2083
{
2079
2084
const char * straddr ;
2080
2085
struct sockaddr_rc * addr = & addrbuf -> bt_rc ;
2086
+ memset (addr , 0 , sizeof (struct sockaddr_rc ));
2081
2087
_BT_RC_MEMB (addr , family ) = AF_BLUETOOTH ;
2082
2088
#ifdef MS_WINDOWS
2083
2089
unsigned long channel ;
@@ -2104,6 +2110,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2104
2110
case BTPROTO_HCI :
2105
2111
{
2106
2112
struct sockaddr_hci * addr = & addrbuf -> bt_hci ;
2113
+ memset (addr , 0 , sizeof (struct sockaddr_hci ));
2107
2114
#if defined(__NetBSD__ ) || defined(__DragonFly__ )
2108
2115
const char * straddr ;
2109
2116
_BT_HCI_MEMB (addr , family ) = AF_BLUETOOTH ;
@@ -2155,6 +2162,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2155
2162
const char * straddr ;
2156
2163
2157
2164
struct sockaddr_sco * addr = & addrbuf -> bt_sco ;
2165
+ memset (addr , 0 , sizeof (struct sockaddr_sco ));
2158
2166
_BT_SCO_MEMB (addr , family ) = AF_BLUETOOTH ;
2159
2167
if (!PyBytes_Check (args )) {
2160
2168
PyErr_Format (PyExc_OSError ,
@@ -2232,6 +2240,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2232
2240
return 0 ;
2233
2241
}
2234
2242
struct sockaddr_ll * addr = & addrbuf -> ll ;
2243
+ memset (addr , 0 , sizeof (struct sockaddr_ll ));
2235
2244
addr -> sll_family = AF_PACKET ;
2236
2245
addr -> sll_protocol = htons ((short )protoNumber );
2237
2246
addr -> sll_ifindex = ifr .ifr_ifindex ;
@@ -2318,6 +2327,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2318
2327
struct ifreq ifr ;
2319
2328
Py_ssize_t len ;
2320
2329
struct sockaddr_can * addr = & addrbuf -> can ;
2330
+ memset (addr , 0 , sizeof (struct sockaddr_can ));
2321
2331
2322
2332
if (!PyTuple_Check (args )) {
2323
2333
PyErr_Format (PyExc_TypeError ,
@@ -2370,6 +2380,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2370
2380
unsigned long int rx_id , tx_id ;
2371
2381
2372
2382
struct sockaddr_can * addr = & addrbuf -> can ;
2383
+ memset (addr , 0 , sizeof (struct sockaddr_can ));
2373
2384
2374
2385
if (!PyArg_ParseTuple (args , "O&kk" , PyUnicode_FSConverter ,
2375
2386
& interfaceName ,
@@ -2417,6 +2428,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2417
2428
uint8_t j1939_addr ;
2418
2429
2419
2430
struct sockaddr_can * addr = & addrbuf -> can ;
2431
+ memset (addr , 0 , sizeof (struct sockaddr_can ));
2420
2432
2421
2433
if (!PyArg_ParseTuple (args , "O&KIB" , PyUnicode_FSConverter ,
2422
2434
& interfaceName ,
@@ -2469,6 +2481,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2469
2481
case SYSPROTO_CONTROL :
2470
2482
{
2471
2483
struct sockaddr_ctl * addr = & addrbuf -> ctl ;
2484
+ memset (addr , 0 , sizeof (struct sockaddr_ctl ));
2472
2485
addr -> sc_family = AF_SYSTEM ;
2473
2486
addr -> ss_sysaddr = AF_SYS_CONTROL ;
2474
2487
0 commit comments