fuzz: fix use of uninitialized value

packet timestamp is not set when function returns error.
also use C positive modulo for microseconds
pull/8390/head
Philippe Antoine 3 years ago committed by Victor Julien
parent 1660172a8b
commit 1c436fe0ca

@ -117,7 +117,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
// 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;
@ -143,7 +143,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
}
}
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);

@ -160,7 +160,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
//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;
@ -187,7 +187,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
}
}
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);

@ -157,7 +157,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
// 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;
@ -184,7 +184,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
}
}
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);

Loading…
Cancel
Save