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 943b0c4492..0d8819e2e8 100644 --- a/src/or/policies.c +++ b/src/or/policies.c @@ -1530,9 +1530,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);