From: Nick Mathewson Date: Tue, 10 Jan 2017 19:13:45 +0000 (-0500) Subject: Memory leak on bogus ed key in microdesc X-Git-Tag: tor-0.3.0.3-alpha~36^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=143235873ba0229f83ce69c4247ba8d3c459629f;p=thirdparty%2Ftor.git Memory leak on bogus ed key in microdesc --- diff --git a/src/or/routerparse.c b/src/or/routerparse.c index 8cdeb45b7f..58b9a22438 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -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));