]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-cdp.c
Use more the EXTRACT_8BITS() macro to fetch a one-byte value (22/n)
[tcpdump] / print-cdp.c
index 188a3321b7d2aab0d823a86d92ed2193eb1d37c0..586a5ec8ecbd50985158dff09d869d3e41c42cc1 100644 (file)
@@ -342,8 +342,10 @@ cdp_print_addr(netdissect_options *ndo,
                        if (p + pl > endp)
                                goto trunc;
                        ND_PRINT((ndo, "pt=0x%02x, pl=%d, pb=", EXTRACT_8BITS((p - 2)), pl));
-                       while (pl-- > 0)
-                               ND_PRINT((ndo, " %02x", *p++));
+                       while (pl-- > 0) {
+                               ND_PRINT((ndo, " %02x", EXTRACT_8BITS(p)));
+                               p++;
+                       }
                        ND_TCHECK2(*p, 2);
                        if (p + 2 > endp)
                                goto trunc;
@@ -352,8 +354,10 @@ cdp_print_addr(netdissect_options *ndo,
                        ND_TCHECK2(*p, al);
                        if (p + al > endp)
                                goto trunc;
-                       while (al-- > 0)
-                               ND_PRINT((ndo, " %02x", *p++));
+                       while (al-- > 0) {
+                               ND_PRINT((ndo, " %02x", EXTRACT_8BITS(p)));
+                               p++;
+                       }
                }
                num--;
                if (num)
@@ -396,7 +400,7 @@ static unsigned long cdp_get_number(const u_char * p, int l)
     unsigned long res=0;
     while( l>0 )
     {
-       res = (res<<8) + *p;
+       res = (res<<8) + EXTRACT_8BITS(p);
        p++; l--;
     }
     return res;