]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-pktap.c
CVE-2017-13687/CHDLC: Improve bounds and length checks.
[tcpdump] / print-pktap.c
index a49421bb399ecab98a63f0ea07b6a86b9a341349..7144f3c6e9657b851ad4f302c94ecf56f48467bf 100644 (file)
@@ -19,6 +19,8 @@
  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */
 
+/* \summary: Apple's DLT_PKTAP printer */
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -70,16 +72,18 @@ pktap_header_print(netdissect_options *ndo, const u_char *bp, u_int length)
 {
        const pktap_header_t *hdr;
        uint32_t dlt, hdrlen;
+       const char *dltname;
 
        hdr = (const pktap_header_t *)bp;
 
        dlt = EXTRACT_LE_32BITS(&hdr->pkt_dlt);
        hdrlen = EXTRACT_LE_32BITS(&hdr->pkt_len);
+       dltname = pcap_datalink_val_to_name(dlt);
        if (!ndo->ndo_qflag) {
-               ND_PRINT((ndo,"DLT %s (%d) len %d",
-                         pcap_datalink_val_to_name(dlt), dlt, hdrlen));
+               ND_PRINT((ndo,"DLT %s (%d) len %d",
+                         (dltname != NULL ? dltname : "UNKNOWN"), dlt, hdrlen));
         } else {
-               ND_PRINT((ndo,", %s", pcap_datalink_val_to_name(dlt)));
+               ND_PRINT((ndo,"%s", (dltname != NULL ? dltname : "UNKNOWN")));
         }
 
        ND_PRINT((ndo, ", length %u: ", length));