]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-token.c
Don't directly fetch multi-byte integers from packets.
[tcpdump] / print-token.c
index 04defa9921b685e942762ba8f608c1602aaa597b..6a1b95da00d14b3ad85105471cf556599832785a 100644 (file)
@@ -39,6 +39,7 @@ static const char rcsid[] _U_ =
 #include <string.h>
 
 #include "interface.h"
+#include "extract.h"
 #include "addrtoname.h"
 #include "ethertype.h"
 
@@ -135,10 +136,10 @@ token_print(const u_char *p, u_int length, u_int caplen)
                                printf(" [%d:%d]", RING_NUMBER(trp, seg),
                                    BRIDGE_NUMBER(trp, seg));
                } else {
-                       printf("rt = %x", ntohs(trp->token_rcf));
+                       printf("rt = %x", EXTRACT_16BITS(&trp->token_rcf));
 
                        for (seg = 0; seg < SEGMENT_COUNT(trp); seg++)
-                               printf(":%x", ntohs(trp->token_rseg[seg]));
+                               printf(":%x", EXTRACT_16BITS(&trp->token_rseg[seg]));
                }
                printf(" (%s) ", largest_frame[LARGEST_FRAME(trp)]);
        } else {