Преглед на файлове

r13048@catbus: nickm | 2007-05-29 11:08:53 -0400
Oops; better version of previous patch that does not get caught in an infinite loop.


svn:r10391

Nick Mathewson преди 18 години
родител
ревизия
69c712f189
променени са 1 файла, в които са добавени 12 реда и са изтрити 9 реда
  1. 12 9
      src/or/routerparse.c

+ 12 - 9
src/or/routerparse.c

@@ -900,23 +900,26 @@ router_parse_list_from_string(const char **s, const char *eos,
     if (!end)
       break;
 
+    elt = NULL;
+
     if (have_extrainfo && want_extrainfo) {
       routerlist_t *rl = router_get_routerlist();
       extrainfo = extrainfo_parse_entry_from_string(*s, end,
                                        saved_location != SAVED_IN_CACHE,
                                        rl->identity_map);
-      if (!extrainfo)
-        continue;
-      signed_desc = &extrainfo->cache_info;
-      elt = extrainfo;
+      if (extrainfo) {
+        signed_desc = &extrainfo->cache_info;
+        elt = extrainfo;
+      }
     } else if (!have_extrainfo && !want_extrainfo) {
       router = router_parse_entry_from_string(*s, end,
                                           saved_location != SAVED_IN_CACHE);
-      if (!router)
-        continue;
-      signed_desc = &router->cache_info;
-      elt = router;
-    } else {
+      if (router) {
+        signed_desc = &router->cache_info;
+        elt = router;
+      }
+    }
+    if (!elt) {
       *s = end;
       continue;
     }