diff options
-rw-r--r-- | changes/bug16056 | 4 | ||||
-rw-r--r-- | 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 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); |