summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-01-13 16:56:56 -0500
committerNick Mathewson <nickm@torproject.org>2017-01-13 16:56:56 -0500
commitfc2656004ace977d886e8b8240a4d19de6825734 (patch)
tree4af9b43382238ffa3bbd4719d6f6b9875ea8e02a
parent94e8f60901eee5d0f0da512703e4de7fb7e0b449 (diff)
parent955d4b7abdb1f4a3295e9c3ef5fa7abf6f71f057 (diff)
downloadtor-fc2656004ace977d886e8b8240a4d19de6825734.tar.gz
tor-fc2656004ace977d886e8b8240a4d19de6825734.zip
Merge remote-tracking branch 'dgoulet/bug20307_030_01'
-rw-r--r--changes/bug203077
-rw-r--r--src/or/or.h4
2 files changed, 9 insertions, 2 deletions
diff --git a/changes/bug20307 b/changes/bug20307
new file mode 100644
index 0000000000..6036b99516
--- /dev/null
+++ b/changes/bug20307
@@ -0,0 +1,7 @@
+ o Minor bugfixes (circuit, hidden service)
+ - When closing a circuit, the reason for doing so was assigned from a int
+ value to a uint16_t which is quite a problem for negative value that are
+ our internal reasons (ex: END_CIRC_REASON_IP_NOW_REDUNDANT). On the HS
+ side, this was causing introduction point to be flagged as unusable
+ because the reason wasn't the right one due to the bad conversion.
+ Partially fixes #21056 and fixes #20307; Bugfix on tor-0.2.8.1-alpha.
diff --git a/src/or/or.h b/src/or/or.h
index 600bd9dbe6..2e1d2af599 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -3039,11 +3039,11 @@ typedef struct circuit_t {
/** For what reason (See END_CIRC_REASON...) is this circuit being closed?
* This field is set in circuit_mark_for_close and used later in
* circuit_about_to_free. */
- uint16_t marked_for_close_reason;
+ int marked_for_close_reason;
/** As marked_for_close_reason, but reflects the underlying reason for
* closing this circuit.
*/
- uint16_t marked_for_close_orig_reason;
+ int marked_for_close_orig_reason;
/** Unique ID for measuring tunneled network status requests. */
uint64_t dirreq_id;