diff options
author | 1996-12-07 09:17:46 +0000 | |
---|---|---|
committer | 1996-12-07 09:17:46 +0000 | |
commit | 419b17aa6f018242763933beac9bdb9cd2947bfe (patch) | |
tree | c2de98d7b4f9cb989e0cc2f1136ee1dce96bdbf9 | |
parent | months are from 1-12 not 0-12, netbsd pr#2806, mouse@Rodents.Montreal.QC.CA (diff) | |
download | wireguard-openbsd-419b17aa6f018242763933beac9bdb9cd2947bfe.tar.xz wireguard-openbsd-419b17aa6f018242763933beac9bdb9cd2947bfe.zip |
avoid race, avoid mbuf leak
-rw-r--r-- | sys/net/bpf.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/net/bpf.c b/sys/net/bpf.c index a8992a36210..2f0079ac2dc 100644 --- a/sys/net/bpf.c +++ b/sys/net/bpf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bpf.c,v 1.5 1996/06/18 16:12:17 deraadt Exp $ */ +/* $OpenBSD: bpf.c,v 1.6 1996/12/07 09:17:46 deraadt Exp $ */ /* $NetBSD: bpf.c,v 1.27 1996/05/07 05:26:02 thorpej Exp $ */ /* @@ -552,7 +552,7 @@ bpfwrite(dev, uio, ioflag) struct ifnet *ifp; struct mbuf *m; int error, s; - static struct sockaddr dst; + struct sockaddr dst; if (d->bd_bif == 0) return (ENXIO); @@ -566,8 +566,10 @@ bpfwrite(dev, uio, ioflag) if (error) return (error); - if (m->m_pkthdr.len > ifp->if_mtu) + if (m->m_pkthdr.len > ifp->if_mtu) { + m_freem(m); return (EMSGSIZE); + } s = splsoftnet(); #if BSD >= 199103 |