path: root/pcap-usb-linux.c
diff options
authorGuy Harris <guy@alum.mit.edu>2009-09-21 10:45:09 -0700
committerGuy Harris <guy@alum.mit.edu>2009-09-21 10:45:09 -0700
commit71dac45765e9bbb9a2851ee3b1eaecfac6e7a8fd (patch)
tree7a5038d9ece2ca34716e8d1db0c141231f58a699 /pcap-usb-linux.c
parent2fbb5a5e315355746f0c863bf4a9757057478561 (diff)
If an activate routine fails, it needs to clean up the pcap_t, close
anything it's opened, etc.. In addition, the op pointers need to be restored to the un-activated state; do that in pcap_activate() if the call to the activate op fails. Also, in the common cleanup code, set the fd's to -1.
Diffstat (limited to 'pcap-usb-linux.c')
1 files changed, 1 insertions, 0 deletions
diff --git a/pcap-usb-linux.c b/pcap-usb-linux.c
index ba18277..bcbe45a 100644
--- a/pcap-usb-linux.c
+++ b/pcap-usb-linux.c
@@ -384,6 +384,7 @@ usb_activate(pcap_t* handle)
if (!handle->buffer) {
snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
"malloc: %s", pcap_strerror(errno));
+ close(handle->fd);
return PCAP_ERROR;
return 0;