// loop over packets
r = FPC_next(&pkts, &header, &pkt);
p = PacketGetFromAlloc();
+ if (header.ts.tv_sec >= INT_MAX - 3600) {
+ goto bail;
+ }
p->ts.tv_sec = header.ts.tv_sec;
p->ts.tv_usec = header.ts.tv_usec % 1000000;
p->datalink = pkts.datalink;
}
}
r = FPC_next(&pkts, &header, &pkt);
+ if (header.ts.tv_sec >= INT_MAX - 3600) {
+ goto bail;
+ }
PacketRecycle(p);
p->ts.tv_sec = header.ts.tv_sec;
p->ts.tv_usec = header.ts.tv_usec % 1000000;
pcap_cnt++;
p->pcap_cnt = pcap_cnt;
}
+bail:
PacketFree(p);
FlowReset();
//loop over packets
r = pcap_next_ex(pkts, &header, &pkt);
p = PacketGetFromAlloc();
+ if (header->ts.tv_sec >= INT_MAX - 3600) {
+ goto bail;
+ }
p->ts.tv_sec = header->ts.tv_sec;
p->ts.tv_usec = header->ts.tv_usec % 1000000;
p->datalink = pcap_datalink(pkts);
}
}
r = pcap_next_ex(pkts, &header, &pkt);
+ if (header->ts.tv_sec >= INT_MAX - 3600) {
+ goto bail;
+ }
PacketRecycle(p);
p->ts.tv_sec = header->ts.tv_sec;
p->ts.tv_usec = header->ts.tv_usec % 1000000;
pcap_cnt++;
p->pcap_cnt = pcap_cnt;
}
+bail:
//close structure
pcap_close(pkts);
PacketFree(p);
// loop over packets
r = FPC_next(&pkts, &header, &pkt);
p = PacketGetFromAlloc();
+ if (header.ts.tv_sec >= INT_MAX - 3600) {
+ goto bail;
+ }
p->pkt_src = PKT_SRC_WIRE;
p->ts.tv_sec = header.ts.tv_sec;
p->ts.tv_usec = header.ts.tv_usec % 1000000;
}
}
r = FPC_next(&pkts, &header, &pkt);
+ if (header.ts.tv_sec >= INT_MAX - 3600) {
+ goto bail;
+ }
PacketRecycle(p);
p->pkt_src = PKT_SRC_WIRE;
p->ts.tv_sec = header.ts.tv_sec;
pcap_cnt++;
p->pcap_cnt = pcap_cnt;
}
+bail:
PacketFree(p);
FlowReset();