Przeglądaj źródła

resolve a buffer overflow / crash from r9051

svn:r9061
Roger Dingledine 17 lat temu
rodzic
commit
733882315d
1 zmienionych plików z 2 dodań i 3 usunięć
  1. 2 3
      src/or/control.c

+ 2 - 3
src/or/control.c

@@ -1512,14 +1512,13 @@ getinfo_helper_dir(control_connection_t *control_conn,
     tor_free(url);
     smartlist_free(descs);
   } else if (!strcmpstart(question, "dir/status/")) {
-    size_t len;
-    char *cp;
     if (get_options()->DirPort) {
+      size_t len=0;
+      char *cp;
       smartlist_t *status_list = smartlist_create();
       dirserv_get_networkstatus_v2(status_list,
                                    question+strlen("dir/status/"));
       SMARTLIST_FOREACH(status_list, cached_dir_t *, d, len += d->dir_len);
-      len = 0;
       cp = *answer = tor_malloc(len+1);
       SMARTLIST_FOREACH(status_list, cached_dir_t *, d, {
           memcpy(cp, d->dir, d->dir_len);