summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlteo <lteo@openbsd.org>2015-01-16 03:04:19 +0000
committerlteo <lteo@openbsd.org>2015-01-16 03:04:19 +0000
commitb8e7eef5304fc7c6cec220c2db9e4eedad2d5043 (patch)
treef0c7d02fbbcce352c76e662695223defb0122b2f
parentDelete the MANLINT variable and the related SUFFIXES rules because (diff)
downloadwireguard-openbsd-b8e7eef5304fc7c6cec220c2db9e4eedad2d5043.tar.xz
wireguard-openbsd-b8e7eef5304fc7c6cec220c2db9e4eedad2d5043.zip
Fix a use after free, where the already freed p->opt.source was used by
pcap_cleanup_bpf() to disable monitor mode on 802.11 devices. feedback blambert@ ok deraadt@ mikeb@ millert@
-rw-r--r--lib/libpcap/pcap-bpf.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/libpcap/pcap-bpf.c b/lib/libpcap/pcap-bpf.c
index 12a7130e3aa..5ca44688c13 100644
--- a/lib/libpcap/pcap-bpf.c
+++ b/lib/libpcap/pcap-bpf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pcap-bpf.c,v 1.24 2014/10/16 20:08:21 deraadt Exp $ */
+/* $OpenBSD: pcap-bpf.c,v 1.25 2015/01/16 03:04:19 lteo Exp $ */
/*
* Copyright (c) 1993, 1994, 1995, 1996, 1998
@@ -431,9 +431,8 @@ pcap_cleanup_bpf(pcap_t *p)
void
pcap_close(pcap_t *p)
{
- if (p->opt.source != NULL)
- free(p->opt.source);
pcap_cleanup_bpf(p);
+ free(p->opt.source);
free(p);
}