summaryrefslogtreecommitdiff
path: root/src/or/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/or/main.c')
-rw-r--r--src/or/main.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/or/main.c b/src/or/main.c
index 9dce158b33..0c7f3a5be4 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -4246,10 +4246,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) {
@@ -4257,6 +4257,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;
}