Commit ddd0054a authored by Roger Dingledine's avatar Roger Dingledine
Browse files

point out two remote crash bugs, a memory leak, and a few other

items we should probably look into.


svn:r10227
parent 0b661f65
......@@ -388,6 +388,8 @@ mp_pool_clean(mp_pool_t *pool, int n)
n = pool->min_empty_chunks + (-n);
if (n < pool->n_empty_chunks)
pool->min_empty_chunks = n;
/* XXX020 don't we want some sort of return here, given the
* assert that follows? -RD */
}
ASSERT(n>=0);
......
......@@ -3119,6 +3119,8 @@ options_init_from_torrc(int argc, char **argv)
if (argc > 1 && (!strcmp(argv[1],"--version"))) {
char vbuf[128];
// XXX020 below, tor_svn_revision will always be defined, right?
// So we can take out that check? Also in router.c. -RD
if (tor_svn_revision != NULL && strlen(tor_svn_revision)) {
tor_snprintf(vbuf, sizeof(vbuf), " (r%s)", tor_svn_revision);
} else {
......
......@@ -559,8 +559,10 @@ dns_resolve(edge_connection_t *exitconn)
}
//circuit_detach_stream(TO_CIRCUIT(oncirc), exitconn);
exitconn->on_circuit = NULL;
if (!exitconn->_base.marked_for_close)
if (!exitconn->_base.marked_for_close) {
connection_free(TO_CONN(exitconn));
//XXX020 ... and we just leak exitconn otherwise? -RD
}
break;
default:
tor_assert(0);
......
......@@ -68,7 +68,7 @@ static time_t time_of_last_signewnym = 0;
static int signewnym_is_pending = 0;
/** Array of all open connections. The first n_conns elements are valid. */
/*XXXX020 Should we just use a smartlist here? */
/*XXXX020 Should we just use a smartlist here? -NM Sure. -RD */
static connection_t *connection_array[MAXCONNECTIONS+1] =
{ NULL };
/** List of connections that have been marked for close and need to be freed
......
......@@ -4857,6 +4857,8 @@ routerinfo_incompatible_with_extrainfo(routerinfo_t *ri, extrainfo_t *ei)
if (ei->bad_sig)
return 1;
/* XXX020 below we should explain why this is strcmp and not strcasecmp,
* since it differs from how we usually compare nicknames. -RD */
if (strcmp(ri->nickname, ei->nickname) ||
memcmp(ri->cache_info.identity_digest, ei->cache_info.identity_digest,
DIGEST_LEN))
......
......@@ -2142,7 +2142,8 @@ tokenize_string(const char *start, const char *end, smartlist_t *out,
for (i = 0; table[i].t; ++i) {
if (counts[table[i].v] < table[i].min_cnt) {
log_warn(LD_DIR, "Parse error: missing %s element.", table[i].t);
tor_assert(0);
tor_assert(0); /* XXX020 is this assert a remote crash waiting to
* happen? -RD */
return -1;
}
if (counts[table[i].v] > table[i].max_cnt) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment