summaryrefslogtreecommitdiffstats
path: root/sys/net/pf_ioctl.c
diff options
context:
space:
mode:
authorpascoe <pascoe@openbsd.org>2007-12-02 11:53:06 +0000
committerpascoe <pascoe@openbsd.org>2007-12-02 11:53:06 +0000
commit2ef893b418cb35ed4ef06e2e9c5898a416b7485a (patch)
tree80390cdfbc57b2b3472fe504ce506104c314603c /sys/net/pf_ioctl.c
parentDon't leak state if key allocation fails during add. (diff)
downloadwireguard-openbsd-2ef893b418cb35ed4ef06e2e9c5898a416b7485a.tar.xz
wireguard-openbsd-2ef893b418cb35ed4ef06e2e9c5898a416b7485a.zip
Don't put state key if pf_insert_state fails. pf_detach_state would have
put it for us already. Also, fix cut-n-paste error in previous commit. ok dlg@ henning@
Diffstat (limited to 'sys/net/pf_ioctl.c')
-rw-r--r--sys/net/pf_ioctl.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/net/pf_ioctl.c b/sys/net/pf_ioctl.c
index 6224740489d..e001cd22ccb 100644
--- a/sys/net/pf_ioctl.c
+++ b/sys/net/pf_ioctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pf_ioctl.c,v 1.189 2007/12/02 11:42:05 pascoe Exp $ */
+/* $OpenBSD: pf_ioctl.c,v 1.190 2007/12/02 11:53:06 pascoe Exp $ */
/*
* Copyright (c) 2001 Daniel Hartmeier
@@ -1650,7 +1650,7 @@ pfioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct proc *p)
}
bzero(s, sizeof(struct pf_state));
if ((sk = pf_alloc_state_key(s)) == NULL) {
- pool_put(pf_state_pl, s);
+ pool_put(&pf_state_pl, s);
error = ENOMEM;
break;
}
@@ -1665,7 +1665,6 @@ pfioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct proc *p)
if (pf_insert_state(kif, s)) {
pfi_kif_unref(kif, PFI_KIF_REF_NONE);
pool_put(&pf_state_pl, s);
- pool_put(&pf_state_key_pl, sk);
error = ENOMEM;
}
break;