diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-09-07 08:44:39 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-09-07 08:44:39 -0400 |
commit | c68b4d6dac815f6da0427fa4c54e98ec9705c97e (patch) | |
tree | 00c91b19a1cd72fc77db92431f174de210dfae15 | |
parent | fd0961ce6be4fef6201e3e239c9e633e0c8061da (diff) | |
parent | a5ed62f96cafa1be251f9a7b4aafa519de4c2645 (diff) | |
download | tor-c68b4d6dac815f6da0427fa4c54e98ec9705c97e.tar.gz tor-c68b4d6dac815f6da0427fa4c54e98ec9705c97e.zip |
Merge branch 'maint-0.3.2' into release-0.3.2
-rw-r--r-- | changes/bug27463 | 3 | ||||
-rw-r--r-- | src/or/rendclient.c | 9 |
2 files changed, 12 insertions, 0 deletions
diff --git a/changes/bug27463 b/changes/bug27463 new file mode 100644 index 0000000000..073acdd997 --- /dev/null +++ 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 index 3274819241..ac2ac5be21 100644 --- a/src/or/rendclient.c +++ b/src/or/rendclient.c @@ -238,6 +238,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, |