Bladeren bron

fix another mem leak, and point out another for karsten

svn:r12841
Roger Dingledine 16 jaren geleden
bovenliggende
commit
e70d9a7f4d
1 gewijzigde bestanden met toevoegingen van 6 en 1 verwijderingen
  1. 6 1
      src/or/routerparse.c

+ 6 - 1
src/or/routerparse.c

@@ -3402,7 +3402,7 @@ rend_decrypt_introduction_points(rend_service_descriptor_t *parsed,
     intro_points_encrypted_size = unenclen;
   }
   /* Consider one intro point after the other. */
-  current_ipo = (const char **)&intro_points_encrypted;
+  current_ipo = &intro_points_encrypted;
   intropoints = smartlist_create();
   tokens = smartlist_create();
   if (parsed->intro_keys) {
@@ -3479,6 +3479,9 @@ rend_decrypt_introduction_points(rend_service_descriptor_t *parsed,
     tok->key = NULL; /* Prevent free */
     /* Add extend info to list of introduction points. */
     smartlist_add(intropoints, info);
+    /* XXX if intropoints has items on it, but we goto err the next
+     * time through the loop, we don't free the items in the 'err'
+     * section below. -RD */
   }
   /* Write extend infos to descriptor. */
   /* XXXX020 what if intro_points (&tc) are already set? */
@@ -3506,6 +3509,8 @@ rend_decrypt_introduction_points(rend_service_descriptor_t *parsed,
   SMARTLIST_FOREACH(tokens, directory_token_t *, t, token_free(t));
   smartlist_free(tokens);
 
+  smartlist_free(intropoints);
+
   return result;
 }