commit fca578d9b56d7d80fc43f21b77153d7e5cad92d6 Author: Nick Mathewson nickm@torproject.org Date: Mon Mar 11 12:34:14 2013 -0400
Increase link_proto field to 2 bytes
This should have been 2 bytes all along, since version numbers can be 16 bits long. This isn't a live bug, since the call to is_or_protocol_version_known in channel_tls_process_versions_cell will reject any version number not in the range 1..4. Still, let's fix this before we accidentally start supporting version 256.
Reported pseudonymously. Fixes bug 8062; bugfix on 0.2.0.10-alpha -- specifically, on commit 6fcda529, where during development I increased the width of a version to 16 bits without changing the type of link_proto. --- changes/bug8062 | 5 +++++ src/or/or.h | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/changes/bug8062 b/changes/bug8062 new file mode 100644 index 0000000..805e51e --- /dev/null +++ b/changes/bug8062 @@ -0,0 +1,5 @@ + o Minor bugfixes: + - Increase the width of the field used to remember a connection's + link protocol version to two bytes. Harmless for now, since the + only currently recognized versions are one byte long. Reported + pseudynmously. Fixes bug 8062, bugfix on 0.2.0.10-alpha. diff --git a/src/or/or.h b/src/or/or.h index c7d2598..2fe36ba 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -1417,8 +1417,8 @@ typedef struct or_connection_t { unsigned int is_outgoing:1; unsigned int proxy_type:2; /**< One of PROXY_NONE...PROXY_SOCKS5 */ unsigned int wide_circ_ids:1; - uint8_t link_proto; /**< What protocol version are we using? 0 for - * "none negotiated yet." */ + uint16_t link_proto; /**< What protocol version are we using? 0 for + * "none negotiated yet." */
or_handshake_state_t *handshake_state; /**< If we are setting this connection * up, state information to do so. */
tor-commits@lists.torproject.org