]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-babel.c
Use more the ND_TTEST_1() macro
[tcpdump] / print-babel.c
index 5c5ab308170a2d117a669fa2635176ed873fa01e..3f0166d1ec3364ce35e9ad7803fe1977b684944f 100644 (file)
@@ -377,7 +377,7 @@ babel_print_v2(netdissect_options *ndo,
         ICHECK(i, 2);
         len = EXTRACT_U_1(message + 1);
 
-        ND_TCHECK2(*message, 2 + len);
+        ND_TCHECK_LEN(message, 2 + len);
         ICHECK(i, 2 + len);
 
         switch(type) {
@@ -501,12 +501,12 @@ babel_print_v2(netdissect_options *ndo,
                 u_char prefix[16];
                 ND_PRINT((ndo, "\n\tUpdate"));
                 if(len < 10) goto invalid;
-                plen = message[4] + (message[2] == 1 ? 96 : 0);
+                plen = EXTRACT_U_1(message + 4) + (EXTRACT_U_1(message + 2) == 1 ? 96 : 0);
                 rc = network_prefix(EXTRACT_U_1(message + 2),
                                     EXTRACT_U_1(message + 4),
                                     EXTRACT_U_1(message + 5),
                                     message + 12,
-                                    message[2] == 1 ? v4_prefix : v6_prefix,
+                                    EXTRACT_U_1(message + 2) == 1 ? v4_prefix : v6_prefix,
                                     len - 10, prefix);
                 if(rc < 0) goto invalid;
                 interval = EXTRACT_BE_U_2(message + 6);
@@ -519,7 +519,7 @@ babel_print_v2(netdissect_options *ndo,
                        format_prefix(ndo, prefix, plen),
                        metric, seqno, format_interval_update(interval)));
                 if(EXTRACT_U_1(message + 3) & 0x80) {
-                    if(message[2] == 1)
+                    if(EXTRACT_U_1(message + 2) == 1)
                         memcpy(v4_prefix, prefix, 16);
                     else
                         memcpy(v6_prefix, prefix, 16);
@@ -539,7 +539,7 @@ babel_print_v2(netdissect_options *ndo,
                 u_char prefix[16], plen;
                 ND_PRINT((ndo, "\n\tRequest "));
                 if(len < 2) goto invalid;
-                plen = message[3] + (message[2] == 1 ? 96 : 0);
+                plen = EXTRACT_U_1(message + 3) + (EXTRACT_U_1(message + 2) == 1 ? 96 : 0);
                 rc = network_prefix(EXTRACT_U_1(message + 2),
                                     EXTRACT_U_1(message + 3), 0,
                                     message + 4, NULL, len - 2, prefix);
@@ -564,7 +564,7 @@ babel_print_v2(netdissect_options *ndo,
                                     EXTRACT_U_1(message + 3), 0,
                                     message + 16, NULL, len - 14, prefix);
                 if(rc < 0) goto invalid;
-                plen = message[3] + (message[2] == 1 ? 96 : 0);
+                plen = EXTRACT_U_1(message + 3) + (EXTRACT_U_1(message + 2) == 1 ? 96 : 0);
                 ND_PRINT((ndo, "(%u hops) for %s seqno %u id %s",
                        EXTRACT_U_1(message + 6), format_prefix(ndo, prefix, plen),
                        seqno, format_id(message + 8)));