|
@@ -2480,7 +2480,6 @@ router_parse_addr_policy(directory_token_t *tok)
|
|
|
{
|
|
|
addr_policy_t *newe;
|
|
|
char *arg;
|
|
|
- char buf[POLICY_BUF_LEN];
|
|
|
|
|
|
tor_assert(tok->tp == K_REJECT || tok->tp == K_ACCEPT);
|
|
|
|
|
@@ -2500,10 +2499,6 @@ router_parse_addr_policy(directory_token_t *tok)
|
|
|
&newe->prt_min, &newe->prt_max))
|
|
|
goto policy_read_failed;
|
|
|
|
|
|
- if (policy_write_item(buf, sizeof(buf), newe) < 0)
|
|
|
- goto policy_read_failed;
|
|
|
-
|
|
|
- newe->string = tor_strdup(buf);
|
|
|
return newe;
|
|
|
|
|
|
policy_read_failed:
|
|
@@ -2540,16 +2535,13 @@ router_parse_addr_policy_private(directory_token_t *tok)
|
|
|
|
|
|
nextp = &result;
|
|
|
for (net = 0; private_nets[net]; ++net) {
|
|
|
- size_t len;
|
|
|
+ char buf[POLICY_BUF_LEN];
|
|
|
*nextp = tor_malloc_zero(sizeof(addr_policy_t));
|
|
|
(*nextp)->policy_type = (tok->tp == K_REJECT) ? ADDR_POLICY_REJECT
|
|
|
: ADDR_POLICY_ACCEPT;
|
|
|
- len = strlen(arg)+strlen(private_nets[net])+16;
|
|
|
- (*nextp)->string = tor_malloc(len+1);
|
|
|
- tor_snprintf((*nextp)->string, len, "%s %s%s",
|
|
|
- tok->tp == K_REJECT ? "reject" : "accept",
|
|
|
+ tor_snprintf(buf, sizeof(buf), "%s%s",
|
|
|
private_nets[net], arg);
|
|
|
- if (parse_addr_and_port_range((*nextp)->string + 7,
|
|
|
+ if (parse_addr_and_port_range(buf,
|
|
|
&(*nextp)->addr, &(*nextp)->maskbits,
|
|
|
&(*nextp)->prt_min, &(*nextp)->prt_max)) {
|
|
|
log_warn(LD_BUG, "Couldn't parse an address range we generated!");
|
|
@@ -2565,22 +2557,10 @@ router_parse_addr_policy_private(directory_token_t *tok)
|
|
|
void
|
|
|
assert_addr_policy_ok(addr_policy_t *t)
|
|
|
{
|
|
|
- addr_policy_t *t2;
|
|
|
while (t) {
|
|
|
tor_assert(t->policy_type == ADDR_POLICY_REJECT ||
|
|
|
t->policy_type == ADDR_POLICY_ACCEPT);
|
|
|
tor_assert(t->prt_min <= t->prt_max);
|
|
|
- t2 = router_parse_addr_policy_from_string(t->string, -1);
|
|
|
- tor_assert(t2);
|
|
|
- tor_assert(t2->policy_type == t->policy_type);
|
|
|
- tor_assert(t2->addr == t->addr);
|
|
|
- tor_assert(t2->maskbits == t->maskbits);
|
|
|
- tor_assert(t2->prt_min == t->prt_min);
|
|
|
- tor_assert(t2->prt_max == t->prt_max);
|
|
|
- tor_assert(!strcmp(t2->string, t->string));
|
|
|
- tor_assert(t2->next == NULL);
|
|
|
- addr_policy_free(t2);
|
|
|
-
|
|
|
t = t->next;
|
|
|
}
|
|
|
|