From: Nick Mathewson Date: Thu, 11 Apr 2019 21:51:11 +0000 (-0400) Subject: Make it clear to coverity we aren't leaking in protover_all_supported() X-Git-Tag: tor-0.4.1.1-alpha~46^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=781d69f3a7e1c9d70120cda970b203dea4180b99;p=thirdparty%2Ftor.git Make it clear to coverity we aren't leaking in protover_all_supported() The logic here should be "use versions or free it". The "free it" part was previously in a kind of obfuscated place, so coverity wasn't sure it was invoked as appropriate. CID 1437436. --- diff --git a/src/core/or/protover.c b/src/core/or/protover.c index 53709ad002..1edf78ec87 100644 --- a/src/core/or/protover.c +++ b/src/core/or/protover.c @@ -820,6 +820,8 @@ protover_all_supported(const char *s, char **missing_out) * ones and, if so, add them to unsupported->ranges. */ if (versions->low != 0 && versions->high != 0) { smartlist_add(unsupported->ranges, versions); + } else { + tor_free(versions); } /* Finally, if we had something unsupported, add it to the list of * missing_some things and mark that there was something missing. */ @@ -828,7 +830,6 @@ protover_all_supported(const char *s, char **missing_out) all_supported = 0; } else { proto_entry_free(unsupported); - tor_free(versions); } } SMARTLIST_FOREACH_END(range);