commit 34f12437d42bf8cf04763e851b54d6a96470e288 Author: Sebastian Hahn sebastian@torproject.org Date: Wed Oct 26 16:49:24 2011 +0200
Fix a couple of pluggable transport bugs
Fix coverity complaints 490, 491 and 492. Especially the one in parse_client_transport_line() could've been a remotely triggerable segfault, I think. --- src/or/config.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/or/config.c b/src/or/config.c index 40ce258..ec9d84b 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -4865,8 +4865,10 @@ parse_client_transport_line(const char *line, int validate_only) done: SMARTLIST_FOREACH(items, char*, s, tor_free(s)); smartlist_free(items); - SMARTLIST_FOREACH(transport_list, char*, s, tor_free(s)); - smartlist_free(transport_list); + if (transport_list) { + SMARTLIST_FOREACH(transport_list, char*, s, tor_free(s)); + smartlist_free(transport_list); + }
return r; } @@ -5989,7 +5991,7 @@ validate_transports_in_state(or_state_t *state)
for (line = state->TransportProxies ; line ; line = line->next) { tor_assert(!strcmp(line->key, "TransportProxy")); - if (!state_transport_line_is_valid(line->value)<0) + if (!state_transport_line_is_valid(line->value)) broken = 1; }