summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2009-06-05 19:41:40 -0400
committerNick Mathewson <nickm@torproject.org>2009-06-05 19:41:40 -0400
commit20193fc7ab16f735f35a16368bfd83e2e565456e (patch)
tree085d25c2f5d7ba6f6b81ce41de9d0823849b80fd
parent48bf1d97eeed9fd0812e281cbc1f08c6c5ade89c (diff)
downloadtor-20193fc7ab16f735f35a16368bfd83e2e565456e.tar.gz
tor-20193fc7ab16f735f35a16368bfd83e2e565456e.zip
Avoid a memory corruption problem related to "private" in DirPolicy.
This is a posible fix for bug 996.
-rw-r--r--ChangeLog3
-rw-r--r--src/or/policies.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b2ba413511..29d1c0e443 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -88,6 +88,9 @@ Changes in version 0.2.1.14-rc - 2009-04-12
patch by Sebastian.
- Avoid crashing in the presence of certain malformed descriptors.
Found by lark, and by automated fuzzing.
+ - Avoid crashing when we have "private" in a policy specified in
+ a DirPolicy or SocksPolicy or ReachableAddresses option and we
+ re-load the policy. May fix bug 996.
o Minor features:
- When generating circuit events with verbose nicknames for
diff --git a/src/or/policies.c b/src/or/policies.c
index cb914d11f6..d55e86c184 100644
--- a/src/or/policies.c
+++ b/src/or/policies.c
@@ -411,6 +411,7 @@ load_policy_from_option(config_line_t *config, smartlist_t **policy,
memcpy(&newp, n, sizeof(newp));
newp.prt_min = 1;
newp.prt_max = 65535;
+ newp.is_canonical = 0;
c = addr_policy_get_canonical_entry(&newp);
SMARTLIST_REPLACE_CURRENT(*policy, n, c);
addr_policy_free(n);