summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsashan <sashan@openbsd.org>2015-07-19 05:54:54 +0000
committersashan <sashan@openbsd.org>2015-07-19 05:54:54 +0000
commit899b02c7308eff3e895130a55b132bdb510c8bae (patch)
tree4cd8a509d8f3c7675c8b82c575a48528694a71e3
parentFree memory when finished. (diff)
downloadwireguard-openbsd-899b02c7308eff3e895130a55b132bdb510c8bae.tar.xz
wireguard-openbsd-899b02c7308eff3e895130a55b132bdb510c8bae.zip
potential memory leak in SIOCADDRULE
ok mcbride@
-rw-r--r--sys/net/pf_ioctl.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/net/pf_ioctl.c b/sys/net/pf_ioctl.c
index a59da8f195d..e5017020045 100644
--- a/sys/net/pf_ioctl.c
+++ b/sys/net/pf_ioctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pf_ioctl.c,v 1.287 2015/07/19 05:48:12 sashan Exp $ */
+/* $OpenBSD: pf_ioctl.c,v 1.288 2015/07/19 05:54:54 sashan Exp $ */
/*
* Copyright (c) 2001 Daniel Hartmeier
@@ -1068,7 +1068,8 @@ pfioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct proc *p)
break;
}
if ((error = pf_rule_copyin(&pr->rule, rule, ruleset))) {
- pool_put(&pf_rule_pl, rule);
+ pf_rm_rule(NULL, rule);
+ rule = NULL;
break;
}
rule->cuid = p->p_ucred->cr_ruid;
@@ -1084,7 +1085,8 @@ pfioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct proc *p)
break;
#endif /* INET6 */
default:
- pool_put(&pf_rule_pl, rule);
+ pf_rm_rule(NULL, rule);
+ rule = NULL;
error = EAFNOSUPPORT;
goto fail;
}