tor

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

commit c4d0d9bd24c484893055d50999377f86fd9468c7
parent 00536254b765900127af04f278ed591d562434d9
Author: Nick Mathewson <nickm@torproject.org>
Date:   Wed,  8 Aug 2018 18:06:11 -0400

Merge branch 'bug26948_033' into maint-0.3.3

Diffstat:
Achanges/bug26948 | 4++++
Msrc/or/main.c | 9+++++----
2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/changes/bug26948 b/changes/bug26948 @@ -0,0 +1,4 @@ + o Minor bugfixes (in-process restart): + - Always call tor_free_all() when leaving tor_run_main(). When we + did not, restarting tor in-process would cause an assertion failure. + Fixes bug 26948; bugfix on 0.3.3.1-alpha. diff --git a/src/or/main.c b/src/or/main.c @@ -4035,10 +4035,10 @@ tor_run_main(const tor_main_configuration_t *tor_cfg) #endif /* defined(NT_SERVICE) */ { int init_rv = tor_init(argc, argv); - if (init_rv < 0) - return -1; - else if (init_rv > 0) - return 0; + if (init_rv) { + tor_free_all(0); + return (init_rv < 0) ? -1 : 0; + } } if (get_options()->Sandbox && get_options()->command == CMD_RUN_TOR) { @@ -4046,6 +4046,7 @@ tor_run_main(const tor_main_configuration_t *tor_cfg) if (sandbox_init(cfg)) { log_err(LD_BUG,"Failed to create syscall sandbox filter"); + tor_free_all(0); return -1; }