Просмотр исходного кода

fix the assumption that uninitialized variables are 0
clean up router_load_single_router() more


svn:r4266

Roger Dingledine 20 лет назад
Родитель
Сommit
0fa1890e0e
2 измененных файлов с 6 добавлено и 5 удалено
  1. 1 1
      src/or/control.c
  2. 5 4
      src/or/routerlist.c

+ 1 - 1
src/or/control.c

@@ -827,7 +827,7 @@ static int
 handle_control_postdescriptor(connection_t *conn, uint32_t len,
                               const char *body)
 {
-  const char *msg;
+  const char *msg=NULL;
   switch (router_load_single_router(body, &msg)) {
   case -1:
     send_control_error(conn,ERR_SYNTAX,msg?msg: "Could not parse descriptor");

+ 5 - 4
src/or/routerlist.c

@@ -908,21 +908,22 @@ int
 router_load_single_router(const char *s, const char **msg)
 {
   routerinfo_t *ri;
+  tor_assert(msg);
 
   if (!(ri = router_parse_entry_from_string(s, NULL))) {
     log_fn(LOG_WARN, "Error parsing router descriptor; dropping.");
-    if (msg) *msg = "Couldn't parse router descriptor";
+    *msg = "Couldn't parse router descriptor";
     return -1;
   }
   if (router_is_me(ri)) {
     log_fn(LOG_WARN, "Router's identity key matches mine; dropping.");
-    if (msg) *msg = "Router's identity key matches mine.";
+    *msg = "Router's identity key matches mine.";
     routerinfo_free(ri);
     return 0;
   }
   if (router_resolve(ri)<0) {
     log_fn(LOG_WARN, "Couldn't resolve router address; dropping.");
-    if (msg) *msg = "Couldn't resolve router address.";
+    *msg = "Couldn't resolve router address.";
     routerinfo_free(ri);
     return 0;
   }
@@ -934,7 +935,7 @@ router_load_single_router(const char *s, const char **msg)
   }
   if (router_add_to_routerlist(ri, msg)<0) {
     log_fn(LOG_WARN, "Couldn't add router to list; dropping.");
-    if (msg) *msg = "Couldn't add router to list.";
+    *msg = "Couldn't add router to list.";
     /* ri is already freed */
     return 0;
   } else {