diff --git a/pcap-win32.c b/pcap-win32.c index 434ab77..e1f848d 100644 --- a/pcap-win32.c +++ b/pcap-win32.c @@ -32,7 +32,7 @@ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/libpcap/pcap-win32.c,v 1.27 2005-06-10 03:49:19 risso Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/libpcap/pcap-win32.c,v 1.28 2005-06-10 03:52:19 risso Exp $ (LBL)"; #endif #include @@ -411,6 +411,7 @@ pcap_open_live(const char *device, int snaplen, int promisc, int to_ms, if (p->adapter == NULL) { + free(p); /* Adapter detected but we are not able to open it. Return failure. */ snprintf(ebuf, PCAP_ERRBUF_SIZE, "Error opening adapter: %s", pcap_win32strerror()); return NULL; @@ -419,7 +420,6 @@ pcap_open_live(const char *device, int snaplen, int promisc, int to_ms, /*get network type*/ if(PacketGetNetType (p->adapter,&type) == FALSE) { - free(p); snprintf(ebuf, PCAP_ERRBUF_SIZE, "Cannot determine the network type: %s", pcap_win32strerror()); goto bad; }