summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug160564
-rw-r--r--src/or/policies.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/changes/bug16056 b/changes/bug16056
new file mode 100644
index 0000000000..e3311c0f93
--- /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 9c858ec1b0..b247e6a64d 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);