Browse Source

Segfault less. Somebody needs to look over why exactly this helps. re #436

svn:r10376
Peter Palfrader 18 years ago
parent
commit
3425f2c11f
2 changed files with 3 additions and 1 deletions
  1. 1 1
      src/or/directory.c
  2. 2 0
      src/or/dirserv.c

+ 1 - 1
src/or/directory.c

@@ -1960,7 +1960,7 @@ directory_handle_command_post(dir_connection_t *conn, const char *headers,
 
   if (authdir_mode_handles_descs(options) &&
       !strcmp(url,"/tor/")) { /* server descriptor post */
-    const char *msg;
+    const char *msg = NULL;
     int r = dirserv_add_multiple_descriptors(body, &msg);
     tor_assert(msg);
     if (r > 0)

+ 2 - 0
src/or/dirserv.c

@@ -528,6 +528,7 @@ dirserv_add_multiple_descriptors(const char *desc, const char **msg)
   list = smartlist_create();
   if (!router_parse_list_from_string(&s, NULL, list, SAVED_NOWHERE, 0)) {
     SMARTLIST_FOREACH(list, routerinfo_t *, ri, {
+        msg_out = NULL;
         r_tmp = dirserv_add_descriptor(ri, &msg_out);
         if (r_tmp < r) {
           r = r_tmp;
@@ -541,6 +542,7 @@ dirserv_add_multiple_descriptors(const char *desc, const char **msg)
   s = desc;
   if (!router_parse_list_from_string(&s, NULL, list, SAVED_NOWHERE, 1)) {
     SMARTLIST_FOREACH(list, extrainfo_t *, ei, {
+        msg_out = NULL;
         r_tmp = dirserv_add_extrainfo(ei, &msg_out);
         if (r_tmp < r) {
           r = r_tmp;