[tor-commits] [tor/maint-0.2.7] Format IPv6 policies correctly.

nickm at torproject.org nickm at torproject.org
Tue Dec 8 13:45:04 UTC 2015


commit e9bf584694a592852293b945575d17ea4c3b742b
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Dec 8 08:42:52 2015 -0500

    Format IPv6 policies correctly.
    
    Previously we'd suppressed the mask-bits field in the output when
    formatting a policy if it was >=32.  But that should be a >=128 if
    we're talking about IPv6.
    
    Since we didn't put these in descriptors, this bug affects only log
    messages and controller outputs.
    
    Fix for bug 16056.  The code in question was new in 0.2.0, but the
    bug was introduced in 0.2.4 when we started supporting IPv6 exits.
---
 changes/bug16056  |    4 ++++
 src/or/policies.c |    6 +++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/changes/bug16056 b/changes/bug16056
new file mode 100644
index 0000000..e3311c0
--- /dev/null
+++ b/changes/bug16056
@@ -0,0 +1,4 @@
+  o Minor bugfixes (relay, IPv6):
+    - When displaying an IPv6 exit policy, include the mask bits correctly
+      even when the number is greater than 31. Fixes bug 16056; bugfix on
+      0.2.4.7-alpha. Patch from "gturner".
\ No newline at end of file
diff --git a/src/or/policies.c b/src/or/policies.c
index 9c858ec..b247e6a 100644
--- a/src/or/policies.c
+++ b/src/or/policies.c
@@ -1391,9 +1391,9 @@ policy_write_item(char *buf, size_t buflen, addr_policy_t *policy,
   if (result < 0)
     return -1;
   written += strlen(buf);
-  /* If the maskbits is 32 we don't need to give it.  If the mask is 0,
-   * we already wrote "*". */
-  if (policy->maskbits < 32 && policy->maskbits > 0) {
+  /* If the maskbits is 32 (IPv4) or 128 (IPv6) we don't need to give it.  If
+     the mask is 0, we already wrote "*". */
+  if (policy->maskbits < (is_ip6?128:32) && policy->maskbits > 0) {
     if (tor_snprintf(buf+written, buflen-written, "/%d", policy->maskbits)<0)
       return -1;
     written += strlen(buf+written);



More information about the tor-commits mailing list