Преглед изворни кода

Merge remote branch 'sebastian/coverity'

Nick Mathewson пре 15 година
родитељ
комит
295e6557a9
1 измењених фајлова са 13 додато и 13 уклоњено
  1. 13 13
      src/or/control.c

+ 13 - 13
src/or/control.c

@@ -2095,21 +2095,24 @@ handle_control_extendcircuit(control_connection_t *conn, uint32_t len,
         connection_printf_to_buf(conn, "552 Unknown purpose \"%s\"\r\n", purp);
         SMARTLIST_FOREACH(args, char *, cp, tor_free(cp));
         smartlist_free(args);
+        goto done;
       }
     }
 
     if ((smartlist_len(args) == 1) ||
         (smartlist_len(args) >= 2 && is_keyval_pair(smartlist_get(args, 1)))) {
-        // "EXTENDCIRCUIT 0" || EXTENDCIRCUIT 0 foo=bar"
-        circ = circuit_launch_by_router(intended_purpose, NULL,
-                CIRCLAUNCH_NEED_CAPACITY);
-        if (!circ) {
-          connection_write_str_to_buf("551 Couldn't start circuit\r\n", conn);
-        } else {
-          connection_printf_to_buf(conn, "250 EXTENDED %lu\r\n",
-                    (unsigned long)circ->global_identifier);
-        }
-        goto done;
+      // "EXTENDCIRCUIT 0" || EXTENDCIRCUIT 0 foo=bar"
+      circ = circuit_launch_by_router(intended_purpose, NULL,
+                                      CIRCLAUNCH_NEED_CAPACITY);
+      if (!circ) {
+        connection_write_str_to_buf("551 Couldn't start circuit\r\n", conn);
+      } else {
+        connection_printf_to_buf(conn, "250 EXTENDED %lu\r\n",
+                  (unsigned long)circ->global_identifier);
+      }
+      SMARTLIST_FOREACH(args, char *, cp, tor_free(cp));
+      smartlist_free(args);
+      goto done;
     }
     // "EXTENDCIRCUIT 0 router1,router2" ||
     // "EXTENDCIRCUIT 0 router1,router2 PURPOSE=foo"
@@ -2125,9 +2128,6 @@ handle_control_extendcircuit(control_connection_t *conn, uint32_t len,
 
   SMARTLIST_FOREACH(args, char *, cp, tor_free(cp));
   smartlist_free(args);
-  if (!zero_circ && !circ) {
-    goto done;
-  }
 
   routers = smartlist_create();
   SMARTLIST_FOREACH(router_nicknames, const char *, n,