From: Sebastian Hahn Date: Wed, 16 Nov 2011 13:07:10 +0000 (+0100) Subject: Don't fail to send netinfo if real_addr is unset X-Git-Tag: tor-0.2.3.8-alpha~29 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=688b53059e56ddbc287de688258ebdd51b94e001;p=thirdparty%2Ftor.git Don't fail to send netinfo if real_addr is unset If we haven't set real_addr on a connection, we also now that _base.addr hasn't been tampered with. So we can use that. --- diff --git a/src/or/connection_or.c b/src/or/connection_or.c index 18ee0dfcf8..320d8cb501 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -1923,7 +1923,11 @@ connection_or_send_netinfo(or_connection_t *conn) /* Their address. */ out = cell.payload + 4; - len = append_address_to_payload(out, &conn->real_addr); + /* We use &conn->real_addr below, unless it hasn't yet been set. If it + * hasn't yet been set, we know that _base.addr hasn't been tampered with + * yet either. */ + len = append_address_to_payload(out, !tor_addr_is_null(&conn->real_addr) + ? &conn->real_addr : &conn->_base.addr); if (len<0) return -1; out += len;