summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Pinto <danielpinto52@gmail.com>2016-08-16 17:53:38 +0100
committerDaniel Pinto <danielpinto52@gmail.com>2016-08-16 17:53:38 +0100
commit8c0fdf6a276077123c356f3fc9d29eebfc41db72 (patch)
tree1ac2994bf6a65d697da877847059911b97bf54aa
parent5e571900b341b52a3176edaecfb6cbab8829efd1 (diff)
downloadtor-8c0fdf6a276077123c356f3fc9d29eebfc41db72.tar.gz
tor-8c0fdf6a276077123c356f3fc9d29eebfc41db72.zip
Added a voting_schedule_free function to free voting schedules.
Existing Uses of the tor_free function on voting schedules were replaced with voting_schedule_free. Fixes #19562.
-rw-r--r--src/or/dirvote.c11
-rw-r--r--src/or/dirvote.h2
-rw-r--r--src/or/shared_random.c2
-rw-r--r--src/or/shared_random_state.c2
4 files changed, 13 insertions, 4 deletions
diff --git a/src/or/dirvote.c b/src/or/dirvote.c
index 94a13e365d..7c80868194 100644
--- a/src/or/dirvote.c
+++ b/src/or/dirvote.c
@@ -2577,7 +2577,7 @@ get_next_valid_after_time(time_t now)
tor_assert(new_voting_schedule);
next_valid_after_time = new_voting_schedule->interval_starts;
- tor_free(new_voting_schedule);
+ free_voting_schedule(new_voting_schedule);
return next_valid_after_time;
}
@@ -2601,7 +2601,7 @@ dirvote_recalculate_timing(const or_options_t *options, time_t now)
/* Fill in the global static struct now */
memcpy(&voting_schedule, new_voting_schedule, sizeof(voting_schedule));
- tor_free(new_voting_schedule);
+ free_voting_schedule(new_voting_schedule);
}
/* Populate and return a new voting_schedule_t that can be used to schedule
@@ -2660,6 +2660,13 @@ get_voting_schedule(const or_options_t *options, time_t now, int severity)
return new_voting_schedule;
}
+/** Frees a voting_schedule_t. This should be used instead of the generic tor_free. */
+void
+free_voting_schedule(voting_schedule_t *voting_schedule_to_free)
+{
+ tor_free(voting_schedule_to_free);
+}
+
/** Entry point: Take whatever voting actions are pending as of <b>now</b>. */
void
dirvote_act(const or_options_t *options, time_t now)
diff --git a/src/or/dirvote.h b/src/or/dirvote.h
index 2a83802307..23084cd0a9 100644
--- a/src/or/dirvote.h
+++ b/src/or/dirvote.h
@@ -157,6 +157,8 @@ typedef struct {
voting_schedule_t *get_voting_schedule(const or_options_t *options,
time_t now, int severity);
+void free_voting_schedule(voting_schedule_t *voting_schedule_to_free);
+
void dirvote_get_preferred_voting_intervals(vote_timing_t *timing_out);
time_t dirvote_get_start_of_next_interval(time_t now,
int interval,
diff --git a/src/or/shared_random.c b/src/or/shared_random.c
index 0a1f24a974..4453052d91 100644
--- a/src/or/shared_random.c
+++ b/src/or/shared_random.c
@@ -1328,7 +1328,7 @@ sr_act_post_consensus(const networkstatus_t *consensus)
get_voting_schedule(options,time(NULL), LOG_NOTICE);
time_t interval_starts = voting_schedule->interval_starts;
sr_state_update(interval_starts);
- tor_free(voting_schedule);
+ free_voting_schedule(voting_schedule);
}
}
diff --git a/src/or/shared_random_state.c b/src/or/shared_random_state.c
index 52a0034db7..4985af1b55 100644
--- a/src/or/shared_random_state.c
+++ b/src/or/shared_random_state.c
@@ -150,7 +150,7 @@ get_start_time_of_current_round(time_t now)
voting_interval,
options->TestingV3AuthVotingStartOffset);
- tor_free(new_voting_schedule);
+ free_voting_schedule(new_voting_schedule);
return curr_start;
}