diff options
author | 2015-07-19 05:54:54 +0000 | |
---|---|---|
committer | 2015-07-19 05:54:54 +0000 | |
commit | 899b02c7308eff3e895130a55b132bdb510c8bae (patch) | |
tree | 4cd8a509d8f3c7675c8b82c575a48528694a71e3 | |
parent | Free memory when finished. (diff) | |
download | wireguard-openbsd-899b02c7308eff3e895130a55b132bdb510c8bae.tar.xz wireguard-openbsd-899b02c7308eff3e895130a55b132bdb510c8bae.zip |
potential memory leak in SIOCADDRULE
ok mcbride@
-rw-r--r-- | sys/net/pf_ioctl.c | 8 |
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; } |