diff options
author | ume <ume@FreeBSD.org> | 2004-01-14 04:10:28 +0000 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2004-01-14 04:10:28 +0000 |
commit | 2f5ae919c21b08f3317ea59875bfebfd09525c08 (patch) | |
tree | 346db6623fcf5fa4a00092fe3140bf6930c22f7a | |
parent | 5acce6f7278b734263f6ae1ad1e53cf0fa67f717 (diff) | |
download | FreeBSD-src-2f5ae919c21b08f3317ea59875bfebfd09525c08.zip FreeBSD-src-2f5ae919c21b08f3317ea59875bfebfd09525c08.tar.gz |
add missing key_freesp()s. part of
http://sources.zabbadoz.net/freebsd/patchset/110-ipsec-netkey-key.diff
with some modification.
Submitted by: "Bjoern A. Zeeb" <bzeeb+freebsd@zabbadoz.net>
Reviewed by: itojun
Obtained from: KAME
-rw-r--r-- | sys/netkey/key.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/netkey/key.c b/sys/netkey/key.c index 5e97933..5906913 100644 --- a/sys/netkey/key.c +++ b/sys/netkey/key.c @@ -2095,6 +2095,7 @@ key_spddelete(so, m, mhp) ipseclog((LOG_DEBUG, "key_spddelete2: attempt to remove persistent SP:%u.\n", sp->id)); + key_freesp(sp); /* ref gained by key_getsp */ return key_senderror(so, m, EPERM); } @@ -2172,11 +2173,12 @@ key_spddelete2(so, m, mhp) ipseclog((LOG_DEBUG, "key_spddelete2: attempt to remove persistent SP:%u.\n", id)); + key_freesp(sp); /* ref gained by key_getspbyid */ return key_senderror(so, m, EPERM); } key_sp_dead(sp); - key_freesp(sp); /* ref gained by key_getsp */ + key_freesp(sp); /* ref gained by key_getspbyid */ key_sp_unlink(sp); sp = NULL; @@ -2277,6 +2279,7 @@ key_spdget(so, m, mhp) } n = key_setdumpsp(sp, SADB_X_SPDGET, 0, mhp->msg->sadb_msg_pid); + key_freesp(sp); /* ref gained by key_getspbyid */ if (n != NULL) { m_freem(m); return key_sendup_mbuf(so, n, KEY_SENDUP_ONE); |