diff options
author | 2007-12-02 11:36:39 +0000 | |
---|---|---|
committer | 2007-12-02 11:36:39 +0000 | |
commit | 878da5de20de1d561cfe97ae861743bcb0b1750b (patch) | |
tree | 23b940dd5fb779a9d4bda49996857cb760a2d01b | |
parent | Let apmless non-mp kernels compile, from chris@ (diff) | |
download | wireguard-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.c | 5 |
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; } |