]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-babel.c
Use more the ND_TTEST_1() macro
[tcpdump] / print-babel.c
index 49fb81deae36751853f07682d31f37aa5a63e924..3f0166d1ec3364ce35e9ad7803fe1977b684944f 100644 (file)
@@ -53,7 +53,7 @@ babel_print(netdissect_options *ndo,
 
     ND_TCHECK_4(cp);
 
-    if(cp[0] != 42) {
+    if(EXTRACT_U_1(cp) != 42) {
         ND_PRINT((ndo, " invalid header"));
         return;
     } else {
@@ -375,9 +375,9 @@ babel_print_v2(netdissect_options *ndo,
 
         ND_TCHECK_2(message);
         ICHECK(i, 2);
-        len = message[1];
+        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)));
@@ -606,10 +606,10 @@ babel_print_v2(netdissect_options *ndo,
                 int parsed_len = 10;
                 ND_PRINT((ndo, "\n\tSS-Update"));
                 if(len < 10) goto invalid;
-                ae = message[2];
-                src_plen = message[3];
-                plen = message[4];
-                omitted = message[5];
+                ae = EXTRACT_U_1(message + 2);
+                src_plen = EXTRACT_U_1(message + 3);
+                plen = EXTRACT_U_1(message + 4);
+                omitted = EXTRACT_U_1(message + 5);
                 interval = EXTRACT_BE_U_2(message + 6);
                 seqno = EXTRACT_BE_U_2(message + 8);
                 metric = EXTRACT_BE_U_2(message + 10);
@@ -647,9 +647,9 @@ babel_print_v2(netdissect_options *ndo,
                 u_char ae, plen, src_plen, prefix[16], src_prefix[16];
                 ND_PRINT((ndo, "\n\tSS-Request "));
                 if(len < 3) goto invalid;
-                ae = message[2];
-                plen = message[3];
-                src_plen = message[4];
+                ae = EXTRACT_U_1(message + 2);
+                plen = EXTRACT_U_1(message + 3);
+                src_plen = EXTRACT_U_1(message + 4);
                 rc = network_prefix(ae, plen, 0, message + 2 + parsed_len,
                                     NULL, len - parsed_len, prefix);
                 if(rc < 0) goto invalid;
@@ -682,11 +682,11 @@ babel_print_v2(netdissect_options *ndo,
                 const u_char *router_id = NULL;
                 ND_PRINT((ndo, "\n\tSS-MH-Request "));
                 if(len < 14) goto invalid;
-                ae = message[2];
-                plen = message[3];
+                ae = EXTRACT_U_1(message + 2);
+                plen = EXTRACT_U_1(message + 3);
                 seqno = EXTRACT_BE_U_2(message + 4);
-                hopc = message[6];
-                src_plen = message[7];
+                hopc = EXTRACT_U_1(message + 6);
+                src_plen = EXTRACT_U_1(message + 7);
                 router_id = message + 8;
                 rc = network_prefix(ae, plen, 0, message + 2 + parsed_len,
                                     NULL, len - parsed_len, prefix);