if rte_pktmbuf_read() return NULL, pcap_dump() would coredump. Signed-off-by: Tianli Lai <laitia...@tom.com> --- app/dumpcap/main.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/app/dumpcap/main.c b/app/dumpcap/main.c index d57db0589a..c941fb92bf 100644 --- a/app/dumpcap/main.c +++ b/app/dumpcap/main.c @@ -878,6 +878,7 @@ pcap_write_packets(pcap_dumper_t *dumper, struct pcap_pkthdr header; uint16_t i; size_t total = 0; + const void *data; gettimeofday(&header.ts, NULL); @@ -886,9 +887,12 @@ pcap_write_packets(pcap_dumper_t *dumper, header.len = rte_pktmbuf_pkt_len(m); header.caplen = RTE_MIN(header.len, sizeof(temp_data)); - - pcap_dump((u_char *)dumper, &header, - rte_pktmbuf_read(m, 0, header.caplen, temp_data)); + data = rte_pktmbuf_read(m, 0, header.caplen, temp_data); + if (!data) { + rte_pktmbuf_free(m); + continue; + } + pcap_dump((u_char *)dumper, &header, data); total += sizeof(header) + header.len; } -- 2.27.0