summaryrefslogtreecommitdiff
path: root/src/or/policies.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2008-03-17 20:10:57 +0000
committerNick Mathewson <nickm@torproject.org>2008-03-17 20:10:57 +0000
commite17e6371d1b2ef034f0860a19e5825cae61600be (patch)
treeb567063304e176e28dc668e422675c0a05d0b9b6 /src/or/policies.c
parent80ec9e51dd0320d0d106ace510efe057b448f974 (diff)
downloadtor-e17e6371d1b2ef034f0860a19e5825cae61600be.tar.gz
tor-e17e6371d1b2ef034f0860a19e5825cae61600be.zip
r18896@catbus: nickm | 2008-03-17 16:10:54 -0400
Fix bug in earlier bugfix. Note stupidness of allowing NULL policies at all. Disallow empty exit policies in router descriptors. svn:r14082
Diffstat (limited to 'src/or/policies.c')
-rw-r--r--src/or/policies.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/or/policies.c b/src/or/policies.c
index 20c1fb9186..cccc72acbb 100644
--- a/src/or/policies.c
+++ b/src/or/policies.c
@@ -51,7 +51,7 @@ policy_expand_private(smartlist_t **policy)
int i;
smartlist_t *tmp;
- if (!*policy)
+ if (!*policy) /*XXXX021 disallow NULL policies */
return;
tmp = smartlist_create();
@@ -530,10 +530,8 @@ compare_addr_to_addr_policy(uint32_t addr, uint16_t port,
int match = 0;
int maybe = 0;
int i, len;
- if (!policy)
- return ADDR_POLICY_REJECTED;
- len = smartlist_len(policy);
+ len = policy ? smartlist_len(policy) : 0;
for (i = 0; i < len; ++i) {
addr_policy_t *tmpe = smartlist_get(policy, i);
@@ -767,7 +765,7 @@ exit_policy_is_general_exit(smartlist_t *policy)
static const int ports[] = { 80, 443, 6667 };
int n_allowed = 0;
int i;
- if (!policy)
+ if (!policy) /*XXXX021 disallow NULL policies */
return 0;
for (i = 0; i < 3; ++i) {
@@ -793,7 +791,7 @@ exit_policy_is_general_exit(smartlist_t *policy)
int
policy_is_reject_star(smartlist_t *policy)
{
- if (!policy)
+ if (!policy) /*XXXX021 disallow NULL policies */
return 1;
SMARTLIST_FOREACH(policy, addr_policy_t *, p, {
if (p->policy_type == ADDR_POLICY_ACCEPT)