test_dos: Fixes for uninitialized stack memory

This was causing CI failures that didn't reproduce on my local machine.
The DoS subsystem now has a new assert() which triggers a BUG on some
nonzero memory contents (or_conn->tracked_for_dos_mitigation), and
uninitialized stack memory might be nonzero.
This commit is contained in:
Micah Elizabeth Scott 2023-08-11 18:05:07 -07:00
parent 2b8d629079
commit d0343b12c6

View File

@ -72,6 +72,7 @@ test_dos_conn_creation(void *arg)
/* Initialize test data */ /* Initialize test data */
or_connection_t or_conn; or_connection_t or_conn;
memset(&or_conn, 0, sizeof or_conn);
time_t wallclock_now = 1281533250; /* 2010-08-11 13:27:30 UTC */ time_t wallclock_now = 1281533250; /* 2010-08-11 13:27:30 UTC */
tt_int_op(AF_INET,OP_EQ, tor_addr_parse(&TO_CONN(&or_conn)->addr, tt_int_op(AF_INET,OP_EQ, tor_addr_parse(&TO_CONN(&or_conn)->addr,
"18.0.0.1")); "18.0.0.1"));
@ -153,6 +154,7 @@ test_dos_circuit_creation(void *arg)
/* Initialize test data */ /* Initialize test data */
or_connection_t or_conn; or_connection_t or_conn;
memset(&or_conn, 0, sizeof or_conn);
time_t now = 1281533250; /* 2010-08-11 13:27:30 UTC */ time_t now = 1281533250; /* 2010-08-11 13:27:30 UTC */
tt_int_op(AF_INET,OP_EQ, tor_addr_parse(&TO_CONN(&or_conn)->addr, tt_int_op(AF_INET,OP_EQ, tor_addr_parse(&TO_CONN(&or_conn)->addr,
"18.0.0.1")); "18.0.0.1"));
@ -218,6 +220,7 @@ test_dos_bucket_refill(void *arg)
channel_init(chan); channel_init(chan);
chan->is_client = 1; chan->is_client = 1;
or_connection_t or_conn; or_connection_t or_conn;
memset(&or_conn, 0, sizeof or_conn);
tt_int_op(AF_INET,OP_EQ, tor_addr_parse(&TO_CONN(&or_conn)->addr, tt_int_op(AF_INET,OP_EQ, tor_addr_parse(&TO_CONN(&or_conn)->addr,
"18.0.0.1")); "18.0.0.1"));
tor_addr_t *addr = &TO_CONN(&or_conn)->addr; tor_addr_t *addr = &TO_CONN(&or_conn)->addr;
@ -459,6 +462,7 @@ test_known_relay(void *arg)
/* Setup an OR conn so we can pass it to the DoS subsystem. */ /* Setup an OR conn so we can pass it to the DoS subsystem. */
or_connection_t or_conn; or_connection_t or_conn;
memset(&or_conn, 0, sizeof or_conn);
tor_addr_parse(&TO_CONN(&or_conn)->addr, "42.42.42.42"); tor_addr_parse(&TO_CONN(&or_conn)->addr, "42.42.42.42");
rs = tor_malloc_zero(sizeof(*rs)); rs = tor_malloc_zero(sizeof(*rs));
@ -514,6 +518,7 @@ test_dos_conn_rate(void *arg)
/* Initialize test data */ /* Initialize test data */
or_connection_t or_conn; or_connection_t or_conn;
memset(&or_conn, 0, sizeof or_conn);
time_t now = 1281533250; /* 2010-08-11 13:27:30 UTC */ time_t now = 1281533250; /* 2010-08-11 13:27:30 UTC */
tt_int_op(AF_INET,OP_EQ, tor_addr_parse(&TO_CONN(&or_conn)->addr, tt_int_op(AF_INET,OP_EQ, tor_addr_parse(&TO_CONN(&or_conn)->addr,
"18.0.0.1")); "18.0.0.1"));