]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-bootp.c
Quiet down gcc -Wall
[tcpdump] / print-bootp.c
index e753805c7b460bd9a9adf6224c6f1ea30536205b..2c823f4e181895344a18380c86778f03eb2a38e5 100644 (file)
@@ -22,7 +22,7 @@
  */
 #ifndef lint
 static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-bootp.c,v 1.55 2000-12-03 23:45:37 fenner Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/print-bootp.c,v 1.58 2001-04-27 02:17:10 fenner Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -174,7 +174,7 @@ bootp_print(register const u_char *cp, u_int length,
        else {
                u_int32_t ul;
 
-               memcpy((char *)&ul, (char *)bp->bp_vend, sizeof(ul));
+               ul = EXTRACT_32BITS(&bp->bp_vend);
                if (ul != 0)
                        printf("vend-#0x%x", ul);
        }
@@ -331,7 +331,7 @@ rfc1048_print(register const u_char *bp, register u_int length)
                if (tag == TAG_END)
                        return;
                if (tag == TAG_EXTENDED_OPTION) {
-                       TCHECK(bp + 1, 2);
+                       TCHECK2(*(bp + 1), 2);
                        tag = EXTRACT_16BITS(bp + 1);
                        /* XXX we don't know yet if the IANA will
                         * preclude overlap of 1-byte and 2-byte spaces.
@@ -427,10 +427,11 @@ rfc1048_print(register const u_char *bp, register u_int length)
                        while (size >= sizeof(ul)) {
                                if (!first)
                                        putchar(',');
-                               memcpy((char *)&ul, (char *)bp, sizeof(ul));
-                               if (c == 'i')
+                               ul = EXTRACT_32BITS(bp);
+                               if (c == 'i') {
+                                       ul = htonl(ul);
                                        printf("%s", ipaddr_string(&ul));
-                               else if (c == 'L')
+                               else if (c == 'L')
                                        printf("%d", ul);
                                else
                                        printf("%u", ul);
@@ -461,7 +462,7 @@ rfc1048_print(register const u_char *bp, register u_int length)
                        while (size >= sizeof(us)) {
                                if (!first)
                                        putchar(',');
-                               memcpy((char *)&us, (char *)bp, sizeof(us));
+                               us = EXTRACT_16BITS(bp);
                                printf("%d", us);
                                bp += sizeof(us);
                                size -= sizeof(us);
@@ -497,8 +498,11 @@ rfc1048_print(register const u_char *bp, register u_int length)
                        /* Bytes */
                        while (size > 0) {
                                if (!first)
-                                       putchar (c == 'x' ? ':' : '.');
-                               printf (c == 'x' ? "%02x" : "%d", *bp);
+                                       putchar(c == 'x' ? ':' : '.');
+                               if (c == 'x')
+                                       printf("%02x", *bp);
+                               else
+                                       printf("%d", *bp);
                                ++bp;
                                --size;
                                first = 0;
@@ -509,17 +513,19 @@ rfc1048_print(register const u_char *bp, register u_int length)
                if (size)
                        printf("[len %d]", len);
        }
+       return;
+trunc:
+       printf("|[rfc1048]");
 }
 
 static void
 cmu_print(register const u_char *bp, register u_int length)
 {
        register const struct cmu_vend *cmu;
-       char *fmt = " %s:%s";
 
 #define PRINTCMUADDR(m, s) { TCHECK(cmu->m); \
     if (cmu->m.s_addr != 0) \
-       printf(fmt, s, ipaddr_string(&cmu->m.s_addr)); }
+       printf(" %s:%s", s, ipaddr_string(&cmu->m.s_addr)); }
 
        printf(" vend-cmu");
        cmu = (struct cmu_vend *)bp;