]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-rsvp.c
Use nd_ types, add EXTRACT_ calls, clean up signed vs. unsigned.
[tcpdump] / print-rsvp.c
index 5a9fb1fc91ec40a71ca77b45a92fefcb04fee1c9..05e7639334c81f848f5fb56e3979cc31ea642564 100644 (file)
@@ -487,11 +487,11 @@ static const struct tok rsvp_obj_generalized_uni_values[] = {
  * it is called from various rsvp objects;
  * returns the amount of bytes being processed
  */
-static int
+static u_int
 rsvp_intserv_print(netdissect_options *ndo,
                    const u_char *tptr, u_short obj_tlen)
 {
-    int parameter_id,parameter_length;
+    u_int parameter_id,parameter_length;
     union {
        float f;
        uint32_t i;
@@ -499,6 +499,7 @@ rsvp_intserv_print(netdissect_options *ndo,
 
     if (obj_tlen < 4)
         return 0;
+    ND_TCHECK_1(tptr);
     parameter_id = EXTRACT_U_1(tptr);
     ND_TCHECK_2(tptr + 2);
     parameter_length = EXTRACT_BE_U_2(tptr + 2)<<2; /* convert wordcount to bytecount */
@@ -592,7 +593,7 @@ rsvp_intserv_print(netdissect_options *ndo,
         */
 
         if (parameter_length == 20) {
-           ND_TCHECK2(*(tptr + 4), 20);
+           ND_TCHECK_LEN(tptr + 4, 20);
             bw.i = EXTRACT_BE_U_4(tptr + 4);
             ND_PRINT((ndo, "\n\t\tToken Bucket Rate: %.10g Mbps", bw.f / 125000));
             bw.i = EXTRACT_BE_U_4(tptr + 8);
@@ -669,7 +670,8 @@ rsvp_obj_print(netdissect_options *ndo,
         const struct rsvp_obj_frr_t *rsvp_obj_frr;
     } obj_ptr;
 
-    u_short rsvp_obj_len,rsvp_obj_ctype,obj_tlen,intserv_serv_tlen;
+    u_short rsvp_obj_len,rsvp_obj_ctype,obj_tlen;
+    u_int intserv_serv_tlen;
     int hexdump,processed,padbytes,error_code,error_value,i,sigcheck;
     union {
        float f;
@@ -681,7 +683,7 @@ rsvp_obj_print(netdissect_options *ndo,
 
     while(tlen>=sizeof(struct rsvp_object_header)) {
         /* did we capture enough for fully decoding the object header ? */
-        ND_TCHECK2(*tptr, sizeof(struct rsvp_object_header));
+        ND_TCHECK_LEN(tptr, sizeof(struct rsvp_object_header));
 
         rsvp_obj_header = (const struct rsvp_object_header *)tptr;
         rsvp_obj_len=EXTRACT_BE_U_2(rsvp_obj_header->length);
@@ -725,7 +727,7 @@ rsvp_obj_print(netdissect_options *ndo,
         obj_tlen=rsvp_obj_len-sizeof(struct rsvp_object_header);
 
         /* did we capture enough for fully decoding the object ? */
-        if (!ND_TTEST2(*tptr, rsvp_obj_len))
+        if (!ND_TTEST_LEN(tptr, rsvp_obj_len))
             return -1;
         hexdump=FALSE;
 
@@ -1376,11 +1378,11 @@ rsvp_obj_print(netdissect_options *ndo,
 
                 while (obj_tlen >= 4) {
                     intserv_serv_tlen=EXTRACT_BE_U_2(obj_tptr + 2)<<2;
-                    ND_PRINT((ndo, "%s  Service Type: %s (%u), break bit %s set, Service length: %u",
+                    ND_PRINT((ndo, "%s  Service Type: %s (%u), break bit %sset, Service length: %u",
                            indent,
                            tok2str(rsvp_intserv_service_type_values,"unknown",EXTRACT_U_1((obj_tptr))),
                            EXTRACT_U_1(obj_tptr),
-                           (EXTRACT_U_1(obj_tptr + 1)&0x80) ? "" : "not",
+                           (EXTRACT_U_1(obj_tptr + 1)&0x80) ? "" : "not ",
                            intserv_serv_tlen));
 
                     obj_tptr+=4; /* get to the start of the parameter list */
@@ -1848,7 +1850,7 @@ trunc:
 
 void
 rsvp_print(netdissect_options *ndo,
-           register const u_char *pptr, register u_int len)
+           const u_char *pptr, u_int len)
 {
     const struct rsvp_common_header *rsvp_com_header;
     const u_char *tptr;