summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpascoe <pascoe@openbsd.org>2007-12-02 11:36:39 +0000
committerpascoe <pascoe@openbsd.org>2007-12-02 11:36:39 +0000
commit878da5de20de1d561cfe97ae861743bcb0b1750b (patch)
tree23b940dd5fb779a9d4bda49996857cb760a2d01b
parentLet apmless non-mp kernels compile, from chris@ (diff)
downloadwireguard-openbsd-878da5de20de1d561cfe97ae861743bcb0b1750b.tar.xz
wireguard-openbsd-878da5de20de1d561cfe97ae861743bcb0b1750b.zip
DIOCADDSTATE would always dereference a NULL pointer during this copy
and what it was copying would get overwritten anyway. Remove the copy and avoid a panic. DIOCGETSTATE would incorrectly dereference a pointer to a pointer, causing another panic. Fix this.
-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 039faca7176..1a4890513e2 100644
--- a/sys/net/pf_ioctl.c
+++ b/sys/net/pf_ioctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pf_ioctl.c,v 1.186 2007/09/27 22:24:05 mpf Exp $ */
+/* $OpenBSD: pf_ioctl.c,v 1.187 2007/12/02 11:36:39 pascoe Exp $ */
/*
* Copyright (c) 2001 Daniel Hartmeier
@@ -910,7 +910,6 @@ pf_state_import(struct pfsync_state *sp, struct pf_state_key *sk,
/* copy to state */
memcpy(&s->id, &sp->id, sizeof(sp->id));
s->creatorid = sp->creatorid;
- strlcpy(sp->ifname, s->kif->pfik_name, sizeof(sp->ifname));
pf_state_peer_from_pfsync(&sp->src, &s->src);
pf_state_peer_from_pfsync(&sp->dst, &s->dst);
@@ -1684,7 +1683,7 @@ pfioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct proc *p)
break;
}
- pf_state_export((struct pfsync_state *)&ps->state,
+ pf_state_export((struct pfsync_state *)ps->state,
s->state_key, s);
break;
}