]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-ldp.c
Add a sanity check on packet header length
[tcpdump] / print-ldp.c
index ce0489b0e2bd89743c829b302d52bffc4f3b3b4c..2803aa33afb7732ea41df80d478201062e7b0c77 100644 (file)
@@ -303,19 +303,19 @@ ldp_tlv_print(netdissect_options *ndo,
                tok2str(af_values, "Unknown (%u)", af));
         switch (af) {
         case AFNUM_INET:
-           while(tlv_tlen >= sizeof(struct in_addr)) {
-               ND_TCHECK_LEN(tptr, sizeof(struct in_addr));
+           while(tlv_tlen >= sizeof(nd_ipv4)) {
+               ND_TCHECK_LEN(tptr, sizeof(nd_ipv4));
                ND_PRINT(" %s", ipaddr_string(ndo, tptr));
-               tlv_tlen-=sizeof(struct in_addr);
-               tptr+=sizeof(struct in_addr);
+               tlv_tlen-=sizeof(nd_ipv4);
+               tptr+=sizeof(nd_ipv4);
            }
             break;
         case AFNUM_INET6:
-           while(tlv_tlen >= sizeof(struct in6_addr)) {
-               ND_TCHECK_LEN(tptr, sizeof(struct in6_addr));
+           while(tlv_tlen >= sizeof(nd_ipv6)) {
+               ND_TCHECK_LEN(tptr, sizeof(nd_ipv6));
                ND_PRINT(" %s", ip6addr_string(ndo, tptr));
-               tlv_tlen-=sizeof(struct in6_addr);
-               tptr+=sizeof(struct in6_addr);
+               tlv_tlen-=sizeof(nd_ipv6);
+               tptr+=sizeof(nd_ipv6);
            }
             break;
         default:
@@ -593,7 +593,7 @@ ldp_pdu_print(netdissect_options *ndo,
     /* print the LSR-ID, label-space & length */
     ND_PRINT("%sLDP, Label-Space-ID: %s:%u, pdu-length: %u",
            (ndo->ndo_vflag < 1) ? "" : "\n\t",
-           ipaddr_string(ndo, &ldp_com_header->lsr_id),
+           ipaddr_string(ndo, ldp_com_header->lsr_id),
            EXTRACT_BE_U_2(ldp_com_header->label_space),
            pdu_len);