浏览代码

fix two more memory problems
one remains :)


svn:r621

Roger Dingledine 20 年之前
父节点
当前提交
a3962bf6fc
共有 2 个文件被更改,包括 3 次插入2 次删除
  1. 2 1
      src/or/dirserv.c
  2. 1 1
      src/or/routers.c

+ 2 - 1
src/or/dirserv.c

@@ -251,7 +251,7 @@ dirserv_add_descriptor(const char **desc)
   }
   
   (*desc_ent_ptr) = tor_malloc(sizeof(descriptor_entry_t));
-  (*desc_ent_ptr)->nickname = ri->nickname;
+  (*desc_ent_ptr)->nickname = strdup(ri->nickname);
   (*desc_ent_ptr)->published = ri->published_on;
   (*desc_ent_ptr)->desc_len = desc_len;
   (*desc_ent_ptr)->descriptor = tor_malloc(desc_len+1);
@@ -444,3 +444,4 @@ size_t dirserv_get_directory(const char **directory)
   *directory = the_directory;
   return the_directory_len;
 }
+

+ 1 - 1
src/or/routers.c

@@ -771,7 +771,6 @@ routerinfo_t *router_get_entry_from_string(char**s) {
   directory_token_t _tok;
   directory_token_t *tok = &_tok;
   struct tm published;
-
   int t;
 
 #define NEXT_TOKEN()                                                     \
@@ -916,6 +915,7 @@ routerinfo_t *router_get_entry_from_string(char**s) {
     goto err;
   }
   
+  router_release_token(tok); /* free the signature */
   return router;
 
  err: