diff options
author | cracyc <cracyc@users.noreply.github.com> | 2013-02-07 04:25:04 +0000 |
---|---|---|
committer | cracyc <cracyc@users.noreply.github.com> | 2013-02-07 04:25:04 +0000 |
commit | 7175f0ae1b3a441fa477ea80774cd89b26d09fd9 (patch) | |
tree | 1a1074c69a55f7d26d1cfb8a01bff6f88ade216e /src/osd/windows | |
parent | b3e608e957dccbe4ce2a11336f7532f3009acf91 (diff) |
pcap: don't crash on exit when wpcap.dll is unloaded before pcap_close is called. (nw)
i386: fix bug (nw)
Diffstat (limited to 'src/osd/windows')
-rw-r--r-- | src/osd/windows/netdev_pcap.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/osd/windows/netdev_pcap.c b/src/osd/windows/netdev_pcap.c index 92dc87b0b42..32e9e6b2f3d 100644 --- a/src/osd/windows/netdev_pcap.c +++ b/src/osd/windows/netdev_pcap.c @@ -10,6 +10,7 @@ static void (*pcap_close_dl)(pcap_t *) = NULL; static int (*pcap_setfilter_dl)(pcap_t *, struct bpf_program *) = NULL; static int (*pcap_sendpacket_dl)(pcap_t *, u_char *, int) = NULL; static int (*pcap_set_datalink_dl)(pcap_t *, int) = NULL; +static HMODULE handle = NULL; #include "emu.h" #include "osdnet.h" @@ -73,7 +74,7 @@ int netdev_pcap::recv_dev(UINT8 **buf) netdev_pcap::~netdev_pcap() { - if(m_p) pcap_close_dl(m_p); + if(m_p && handle) pcap_close_dl(m_p); } static CREATE_NETDEV(create_pcap) @@ -82,8 +83,6 @@ static CREATE_NETDEV(create_pcap) return dynamic_cast<netdev *>(dev); } -static HMODULE handle = NULL; - void init_pcap() { pcap_if_t *devs; @@ -134,4 +133,5 @@ void deinit_pcap() { clear_netdev(); FreeLibrary(handle); + handle = NULL; } |