Browse Source

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.
Sebastian Hahn 14 years ago
parent
commit
34f12437d4
1 changed files with 5 additions and 3 deletions
  1. 5 3
      src/or/config.c

+ 5 - 3
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;
   }