Actually free the worker_state_t object when we do an update with it

Previously we freed the old "keys" object, but leaked the
worker_state_t that we had taken it from.

Fixes bug 20401; bugfix on 0.2.6.3-alpha.
This commit is contained in:
Nick Mathewson 2016-10-31 14:36:15 -04:00
parent d288704023
commit 24b7b922ae
2 changed files with 5 additions and 0 deletions

4
changes/bug20401 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (relay):
- Avoid a small memory leak when informing worker threads about rotated
onion keys. Fixes bug 20401; bugfix on 0.2.6.3-alpha.

View File

@ -168,6 +168,7 @@ update_state_threadfn(void *state_, void *work_)
server_onion_keys_free(state->onion_keys);
state->onion_keys = update->onion_keys;
update->onion_keys = NULL;
worker_state_free(update);
++state->generation;
return WQ_RPL_REPLY;
}