]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Memory leak on bogus ed key in microdesc
authorNick Mathewson <nickm@torproject.org>
Tue, 10 Jan 2017 19:13:45 +0000 (14:13 -0500)
committerNick Mathewson <nickm@torproject.org>
Mon, 30 Jan 2017 13:37:26 +0000 (08:37 -0500)
src/or/routerparse.c

index 8cdeb45b7fd3de943720d9c327b27c481f868e79..58b9a224382e5c7ab7100a3de47a5458da8d1745 100644 (file)
@@ -4717,11 +4717,13 @@ microdescs_parse_from_string(const char *s, const char *eos,
         if (!strcmp(t->args[0], "ed25519")) {
           if (md->ed25519_identity_pkey) {
             log_warn(LD_DIR, "Extra ed25519 key in microdesc");
+            smartlist_free(id_lines);
             goto next;
           }
           ed25519_public_key_t k;
           if (ed25519_public_from_base64(&k, t->args[1])<0) {
             log_warn(LD_DIR, "Bogus ed25519 key in microdesc");
+            smartlist_free(id_lines);
             goto next;
           }
           md->ed25519_identity_pkey = tor_memdup(&k, sizeof(k));