packet timestamp is not set when function returns error.
also use C positive modulo for microseconds
// loop over packets
r = FPC_next(&pkts, &header, &pkt);
p = PacketGetFromAlloc();
- if (header.ts.tv_sec >= INT_MAX - 3600) {
+ if (r <= 0 || header.ts.tv_sec >= INT_MAX - 3600) {
goto bail;
}
p->ts.tv_sec = header.ts.tv_sec;
}
}
r = FPC_next(&pkts, &header, &pkt);
- if (header.ts.tv_sec >= INT_MAX - 3600) {
+ if (r <= 0 || header.ts.tv_sec >= INT_MAX - 3600) {
goto bail;
}
PacketRecycle(p);
//loop over packets
r = pcap_next_ex(pkts, &header, &pkt);
p = PacketGetFromAlloc();
- if (header->ts.tv_sec >= INT_MAX - 3600) {
+ if (r <= 0 || header->ts.tv_sec >= INT_MAX - 3600) {
goto bail;
}
p->ts.tv_sec = header->ts.tv_sec;
}
}
r = pcap_next_ex(pkts, &header, &pkt);
- if (header->ts.tv_sec >= INT_MAX - 3600) {
+ if (r <= 0 || header->ts.tv_sec >= INT_MAX - 3600) {
goto bail;
}
PacketRecycle(p);
// loop over packets
r = FPC_next(&pkts, &header, &pkt);
p = PacketGetFromAlloc();
- if (header.ts.tv_sec >= INT_MAX - 3600) {
+ if (r <= 0 || header.ts.tv_sec >= INT_MAX - 3600) {
goto bail;
}
p->pkt_src = PKT_SRC_WIRE;
}
}
r = FPC_next(&pkts, &header, &pkt);
- if (header.ts.tv_sec >= INT_MAX - 3600) {
+ if (r <= 0 || header.ts.tv_sec >= INT_MAX - 3600) {
goto bail;
}
PacketRecycle(p);