From: Sebastian Hahn Date: Wed, 26 Oct 2011 14:49:24 +0000 (+0200) Subject: Fix a couple of pluggable transport bugs X-Git-Tag: tor-0.2.3.6-alpha~12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=34f12437d42bf8cf04763e851b54d6a96470e288;p=thirdparty%2Ftor.git 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. --- diff --git a/src/or/config.c b/src/or/config.c index 40ce258780..ec9d84b374 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; }