summaryrefslogtreecommitdiffstats
path: root/sys/net/pf_ioctl.c
diff options
context:
space:
mode:
authorpascoe <pascoe@openbsd.org>2007-12-02 12:00:20 +0000
committerpascoe <pascoe@openbsd.org>2007-12-02 12:00:20 +0000
commitcfe4381d7ed4a053d337c00d78262fb427b6883a (patch)
tree3eda38b5ca9d8d648b362103ba41e39d306d81e0 /sys/net/pf_ioctl.c
parentinitialize altq->altq_disc to NULL, from Max Laier (diff)
downloadwireguard-openbsd-cfe4381d7ed4a053d337c00d78262fb427b6883a.tar.xz
wireguard-openbsd-cfe4381d7ed4a053d337c00d78262fb427b6883a.zip
When pf_insert_state state succeeds, increase the state count on the
default rule. When pf_insert_state fails, it's because a matching state already exists. Return a better error code to the user in this case. ok henning@ dlg@
Diffstat (limited to 'sys/net/pf_ioctl.c')
-rw-r--r--sys/net/pf_ioctl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/net/pf_ioctl.c b/sys/net/pf_ioctl.c
index a04bc5a9493..fdbdb45b226 100644
--- a/sys/net/pf_ioctl.c
+++ b/sys/net/pf_ioctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pf_ioctl.c,v 1.191 2007/12/02 11:56:29 dhartmei Exp $ */
+/* $OpenBSD: pf_ioctl.c,v 1.192 2007/12/02 12:00:20 pascoe Exp $ */
/*
* Copyright (c) 2001 Daniel Hartmeier
@@ -1665,8 +1665,10 @@ 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);
- error = ENOMEM;
+ error = EEXIST;
+ break;
}
+ pf_default_rule.states++;
break;
}