diff --git a/ChangeLog b/ChangeLog index 0f28922685..7c36d620f8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -91,6 +91,8 @@ Changes in version 0.2.0.8-alpha - 2007-10-12 o Minor bugfixes (of some sort): - Stop calling tor_strlower() on uninitialized memory in some cases. Bugfix in 0.2.0.7-alpha. + - Fix a minor memory leak whenever we parse guards from our state + file. Bugfix on 0.2.0.7-alpha. o Code simplifications and refactoring: - Make a bunch of functions static. Remove some dead code. diff --git a/src/common/util.c b/src/common/util.c index 701256a9ad..6786fd749e 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -1530,8 +1530,8 @@ struct open_file_t { /** Try to start writing to the file in fname, passing the flags * open_flags to the open() syscall, creating the file (if needed) with * access value mode. If the O_APPEND flag is set, we append to the - * original file. Otherwise, we open a new a temporary file in the same - * directory, and either replace the original or remove the temprorary file + * original file. Otherwise, we open a new temporary file in the same + * directory, and either replace the original or remove the temporary file * when we're done. * * Return the fd for the newly opened file, and store working data in diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 0db6908f61..53555b215c 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -2404,7 +2404,7 @@ entry_guards_prepend_from_config(void) /* Finally, the remaining EntryNodes, unless we're strict */ if (options->StrictEntryNodes) { SMARTLIST_FOREACH(old_entry_guards_not_on_list, entry_guard_t *, e, - tor_free(e)); + entry_guard_free(e)); } else { smartlist_add_all(entry_guards, old_entry_guards_not_on_list); } @@ -2641,11 +2641,13 @@ entry_guards_parse_state(or_state_t *state, int set, char **msg) }); if (*msg || !set) { - SMARTLIST_FOREACH(new_entry_guards, entry_guard_t *, e, tor_free(e)); + SMARTLIST_FOREACH(new_entry_guards, entry_guard_t *, e, + entry_guard_free(e)); smartlist_free(new_entry_guards); } else { /* !*err && set */ if (entry_guards) { - SMARTLIST_FOREACH(entry_guards, entry_guard_t *, e, tor_free(e)); + SMARTLIST_FOREACH(entry_guards, entry_guard_t *, e, + entry_guard_free(e)); smartlist_free(entry_guards); } entry_guards = new_entry_guards;