summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>1996-12-07 09:17:46 +0000
committerderaadt <deraadt@openbsd.org>1996-12-07 09:17:46 +0000
commit419b17aa6f018242763933beac9bdb9cd2947bfe (patch)
treec2de98d7b4f9cb989e0cc2f1136ee1dce96bdbf9
parentmonths are from 1-12 not 0-12, netbsd pr#2806, mouse@Rodents.Montreal.QC.CA (diff)
downloadwireguard-openbsd-419b17aa6f018242763933beac9bdb9cd2947bfe.tar.xz
wireguard-openbsd-419b17aa6f018242763933beac9bdb9cd2947bfe.zip
avoid race, avoid mbuf leak
-rw-r--r--sys/net/bpf.c8
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