tor

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

commit 912ae2b8dc5d13344035def71c6e083a92752c09
parent 1570f17f97ad99ddf3f63745ab3571c1aa411141
Author: Nick Mathewson <nickm@torproject.org>
Date:   Fri,  7 Sep 2018 08:44:36 -0400

Merge remote-tracking branch 'teor/bug27463-029' into maint-0.2.9

Diffstat:
Achanges/bug27463 | 3+++
Msrc/or/rendclient.c | 9+++++++++
2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/changes/bug27463 b/changes/bug27463 @@ -0,0 +1,3 @@ + o Minor bugfixes (onion services): + - Silence a spurious compiler warning in rend_client_send_introduction(). + Fixes bug 27463; bugfix on 0.1.1.2-alpha. diff --git a/src/or/rendclient.c b/src/or/rendclient.c @@ -269,6 +269,15 @@ rend_client_send_introduction(origin_circuit_t *introcirc, dh_offset = v3_shift+7+DIGEST_LEN+2+klen+REND_COOKIE_LEN; } else { /* Version 0. */ + + /* Some compilers are smart enough to work out that nickname can be more + * than 19 characters, when it's a hexdigest. They warn that strncpy() + * will truncate hexdigests without NUL-terminating them. But we only put + * hexdigests in HSDir and general circuit exits. */ + if (BUG(strlen(rendcirc->build_state->chosen_exit->nickname) + > MAX_NICKNAME_LEN)) { + goto perm_err; + } strncpy(tmp, rendcirc->build_state->chosen_exit->nickname, (MAX_NICKNAME_LEN+1)); /* nul pads */ memcpy(tmp+MAX_NICKNAME_LEN+1, rendcirc->rend_data->rend_cookie,