tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit b8addf97463d9338558ec7c0b97b48eaa476fc55
parent 27d34f36e07b876321a03fbb59533b72b807b679
Author: Neel Chauhan <neel@neelc.org>
Date:   Thu, 16 Nov 2017 12:58:37 -0500

Use memset() on intro1_data in hs_circ_send_introduce1()

Diffstat:
Msrc/or/hs_circuit.c | 5+++++
1 file changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/or/hs_circuit.c b/src/or/hs_circuit.c @@ -1101,6 +1101,11 @@ hs_circ_send_introduce1(origin_circuit_t *intro_circ, tor_assert(ip); tor_assert(subcredential); + /* It is undefined behavior in hs_cell_introduce1_data_clear() if intro1_data + * has been declared on the stack but not initialized. Here, we set it to 0. + */ + memset(&intro1_data, 0, sizeof(hs_cell_introduce1_data_t)); + /* This takes various objects in order to populate the introduce1 data * object which is used to build the content of the cell. */ const node_t *exit_node = build_state_get_exit_node(rend_circ->build_state);