diff --git a/src/sniffer.cpp b/src/sniffer.cpp index 5571a7a..0ca64c0 100644 --- a/src/sniffer.cpp +++ b/src/sniffer.cpp @@ -72,14 +72,16 @@ Tins::PDU *Tins::Sniffer::next_packet(const string &filter) { PDU *ret = 0; while(!ret) { const u_char *content = pcap_next(handle, &header); - try { - if(wired) - ret = new EthernetII((const uint8_t*)content, header.caplen); - else - ret = new RadioTap((const uint8_t*)content, header.caplen); - } - catch(...) { - ret = 0; + if(content) { + try { + if(wired) + ret = new EthernetII((const uint8_t*)content, header.caplen); + else + ret = new RadioTap((const uint8_t*)content, header.caplen); + } + catch(...) { + ret = 0; + } } } return ret;