瀏覽代碼

right before publishing our service descriptor, we were
rewriting the hexdigest back to an ambiguous nickname.
if this patches it, we should write a changelog and then
backport.


svn:r11500

Roger Dingledine 18 年之前
父節點
當前提交
a1e923c50d
共有 1 個文件被更改,包括 4 次插入3 次删除
  1. 4 3
      src/or/rendservice.c

+ 4 - 3
src/or/rendservice.c

@@ -304,16 +304,17 @@ rend_service_update_descriptor(rend_service_t *service)
   /* We support intro protocol 2 and protocol 0. */
   d->protocols = (1<<2) | (1<<0);
   for (i=0; i < n; ++i) {
-    router = router_get_by_nickname(smartlist_get(service->intro_nodes, i),1);
+    const char *name = smartlist_get(service->intro_nodes, i);
+    router = router_get_by_nickname(name, 1);
     if (!router) {
       log_info(LD_REND,"Router '%s' not found for intro point %d. Skipping.",
-               safe_str((char*)smartlist_get(service->intro_nodes, i)), i);
+               safe_str(name), i);
       continue;
     }
     circ = find_intro_circuit(router, service->pk_digest);
     if (circ && circ->_base.purpose == CIRCUIT_PURPOSE_S_INTRO) {
       /* We have an entirely established intro circuit. */
-      d->intro_points[d->n_intro_points] = tor_strdup(router->nickname);
+      d->intro_points[d->n_intro_points] = tor_strdup(name);
       d->intro_point_extend_info[d->n_intro_points] =
         extend_info_from_router(router);
       d->n_intro_points++;