From 2f5ae919c21b08f3317ea59875bfebfd09525c08 Mon Sep 17 00:00:00 2001 From: ume Date: Wed, 14 Jan 2004 04:10:28 +0000 Subject: 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" Reviewed by: itojun Obtained from: KAME --- sys/netkey/key.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'sys/netkey/key.c') 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); -- cgit v1.1