diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-06-05 23:02:14 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-06-05 23:29:34 +0200 |
commit | 5158e2c0f4f93a3b1a9dbce39a8b011732a71141 (patch) | |
tree | 73e76c3adefbc03d7ba347c47f93ac89ff84cdd8 /src/wg_cookie.c | |
parent | ci: test on 12.1 and 12.2 (diff) | |
download | wireguard-freebsd-5158e2c0f4f93a3b1a9dbce39a8b011732a71141.tar.xz wireguard-freebsd-5158e2c0f4f93a3b1a9dbce39a8b011732a71141.zip |
global: destroy rwlocks and mtxs
Before, most uses of rwlock and mtx never called the destroy method,
which might cause problems for witness.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/wg_cookie.c')
-rw-r--r-- | src/wg_cookie.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/wg_cookie.c b/src/wg_cookie.c index 6b90e3a..34d0328 100644 --- a/src/wg_cookie.c +++ b/src/wg_cookie.c @@ -111,6 +111,14 @@ cookie_checker_init(struct cookie_checker *cc) } void +cookie_checker_free(struct cookie_checker *cc) +{ + rw_destroy(&cc->cc_key_lock); + rw_destroy(&cc->cc_secret_lock); + explicit_bzero(cc, sizeof(*cc)); +} + +void cookie_checker_update(struct cookie_checker *cc, const uint8_t key[COOKIE_INPUT_SIZE]) { @@ -152,6 +160,13 @@ cookie_maker_init(struct cookie_maker *cm, const uint8_t key[COOKIE_INPUT_SIZE]) rw_init(&cm->cm_lock, "cookie_maker"); } +void +cookie_maker_free(struct cookie_maker *cm) +{ + rw_destroy(&cm->cm_lock); + explicit_bzero(cm, sizeof(*cm)); +} + int cookie_maker_consume_payload(struct cookie_maker *cm, uint8_t nonce[COOKIE_NONCE_SIZE], uint8_t ecookie[COOKIE_ENCRYPTED_SIZE]) @@ -340,6 +355,7 @@ ratelimit_deinit(struct ratelimit *rl) callout_stop(&rl->rl_gc); ratelimit_gc(rl, true); rw_wunlock(&rl->rl_lock); + rw_destroy(&rl->rl_lock); } static void |