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;