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

Reply via email to