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 4 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 // loop over packets
r = FPC_next(&pkts, &header, &pkt); r = FPC_next(&pkts, &header, &pkt);
p = PacketGetFromAlloc(); p = PacketGetFromAlloc();
if (header.ts.tv_sec >= INT_MAX - 3600) { if (r <= 0 || header.ts.tv_sec >= INT_MAX - 3600) {
goto bail; goto bail;
} }
p->ts.tv_sec = header.ts.tv_sec; 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); 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; goto bail;
} }
PacketRecycle(p); PacketRecycle(p);

@ -160,7 +160,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
//loop over packets //loop over packets
r = pcap_next_ex(pkts, &header, &pkt); r = pcap_next_ex(pkts, &header, &pkt);
p = PacketGetFromAlloc(); p = PacketGetFromAlloc();
if (header->ts.tv_sec >= INT_MAX - 3600) { if (r <= 0 || header->ts.tv_sec >= INT_MAX - 3600) {
goto bail; goto bail;
} }
p->ts.tv_sec = header->ts.tv_sec; 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); 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; goto bail;
} }
PacketRecycle(p); PacketRecycle(p);

@ -157,7 +157,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
// loop over packets // loop over packets
r = FPC_next(&pkts, &header, &pkt); r = FPC_next(&pkts, &header, &pkt);
p = PacketGetFromAlloc(); p = PacketGetFromAlloc();
if (header.ts.tv_sec >= INT_MAX - 3600) { if (r <= 0 || header.ts.tv_sec >= INT_MAX - 3600) {
goto bail; goto bail;
} }
p->pkt_src = PKT_SRC_WIRE; 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); 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; goto bail;
} }
PacketRecycle(p); PacketRecycle(p);

Loading…
Cancel
Save