tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 781d69f3a7e1c9d70120cda970b203dea4180b99
parent 4e3d144fb0940d8ee5a89427d471ea3656e8e122
Author: Nick Mathewson <nickm@torproject.org>
Date:   Thu, 11 Apr 2019 17:51:11 -0400

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.

Diffstat:
Msrc/core/or/protover.c | 3++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 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);