diff options
author | 2007-12-02 12:00:20 +0000 | |
---|---|---|
committer | 2007-12-02 12:00:20 +0000 | |
commit | cfe4381d7ed4a053d337c00d78262fb427b6883a (patch) | |
tree | 3eda38b5ca9d8d648b362103ba41e39d306d81e0 /sys/net/pf_ioctl.c | |
parent | initialize altq->altq_disc to NULL, from Max Laier (diff) | |
download | wireguard-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.c | 6 |
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; } |