]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-zephyr.c
Add initial bounds check, get rid of union aodv.
[tcpdump] / print-zephyr.c
index 55d1f4a5da0eb309e9522a3d6382e42d06cad20d..7c52e65406589f2c12a86e84a4dc011edf435096 100644 (file)
@@ -1,6 +1,8 @@
 /*
  * Decode and print Zephyr packets.
  *
+ *     http://web.mit.edu/zephyr/doc/protocol
+ *
  * Copyright (c) 2001 Nickolai Zeldovich <[email protected]>
  * All rights reserved.
  *
  */
 
 #ifndef lint
-static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-zephyr.c,v 1.4 2002-04-27 23:39:25 guy Exp $";
+static const char rcsid[] _U_ =
+    "@(#) $Header: /tcpdump/master/tcpdump/print-zephyr.c,v 1.10 2007-08-09 18:47:27 hannes Exp $";
 #endif
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
+#include <tcpdump-stdinc.h>
+
 #include <stdio.h>
-#include <ctype.h>
 #include <string.h>
 #include <stdlib.h>
-#include <sys/types.h>
 
 #include "interface.h"
 
@@ -48,7 +50,7 @@ struct z_packet {
     char *inst;
     char *opcode;
     char *sender;
-    char *recipient;
+    const char *recipient;
     char *format;
     int cksum;
     int multi;
@@ -105,7 +107,7 @@ parse_field(char **pptr, int *len)
 }
 
 static const char *
-z_triple(char *class, char *inst, char *recipient)
+z_triple(char *class, char *inst, const char *recipient)
 {
     if (!*recipient)
        recipient = "*";
@@ -138,6 +140,15 @@ zephyr_print(const u_char *cp, int length)
     char *s;
     int lose = 0;
 
+    /* squelch compiler warnings */
+
+    z.kind = 0;
+    z.class = 0;
+    z.inst = 0;
+    z.opcode = 0;
+    z.sender = 0;
+    z.recipient = 0;
+
 #define PARSE_STRING                           \
        s = parse_field(&parse, &parselen);     \
        if (!s) lose = 1;