]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-isakmp.c
Fix warnings when building for 32-bit and defining _TIME_BITS=64
[tcpdump] / print-isakmp.c
index 9a66274882a2da9555c4e3a5b82b70b02dea454b..bb70a456787cd542568cda80613971a27ab3b8cb 100644 (file)
@@ -741,10 +741,10 @@ static const char *etypestr[] = {
                ? npfunc[(x)] : NULL)
 
 static int
-iszero(const u_char *p, size_t l)
+iszero(netdissect_options *ndo, const u_char *p, size_t l)
 {
        while (l != 0) {
-               if (*p)
+               if (GET_U_1(p))
                        return 0;
                p++;
                l--;
@@ -1828,14 +1828,16 @@ ikev1_d_print(netdissect_options *ndo, u_char tpay _U_,
        ND_PRINT(" spilen=%u", spi_size);
        num_spi = GET_BE_U_2(p->num_spi);
        ND_PRINT(" nspi=%u", num_spi);
-       ND_PRINT(" spi=");
        q = (const uint8_t *)(p + 1);
-       for (i = 0; i < num_spi; i++) {
-               if (i != 0)
-                       ND_PRINT(",");
-               if (!rawprint(ndo, (const uint8_t *)q, spi_size))
-                       goto trunc;
-               q += spi_size;
+       if (spi_size) {
+               ND_PRINT(" spi=");
+               for (i = 0; i < num_spi; i++) {
+                       if (i != 0)
+                               ND_PRINT(",");
+                       if (!rawprint(ndo, (const uint8_t *)q, spi_size))
+                               goto trunc;
+                       q += spi_size;
+               }
        }
        return q;
 trunc:
@@ -2309,7 +2311,7 @@ ikev2_auth_print(netdissect_options *ndo, u_char tpay,
        const struct ikev2_auth *p;
        const char *v2_auth[]={ "invalid", "rsasig",
                                "shared-secret", "dsssig" };
-       const u_char *authdata = (const u_char*)ext + sizeof(struct ikev2_auth);
+       const u_char *authdata = (const u_char *)ext + sizeof(struct ikev2_auth);
 
        ND_TCHECK_LEN(ext, sizeof(struct ikev2_auth));
        p = (const struct ikev2_auth *)ext;
@@ -2841,7 +2843,7 @@ ikev1_print(netdissect_options *ndo,
 
        i = cookie_find(&base->i_ck);
        if (i < 0) {
-               if (iszero((const u_char *)&base->r_ck, sizeof(base->r_ck))) {
+               if (iszero(ndo, base->r_ck, sizeof(base->r_ck))) {
                        /* the first packet */
                        ND_PRINT(" I");
                        if (bp2)
@@ -3111,7 +3113,6 @@ isakmp_rfc3948_print(netdissect_options *ndo,
        if(length < 4) {
                goto trunc;
        }
-       ND_TCHECK_1(bp + 3);
 
        /*
         * see if this is an IKE packet
@@ -3139,5 +3140,4 @@ isakmp_rfc3948_print(netdissect_options *ndo,
 
 trunc:
        nd_print_trunc(ndo);
-       return;
 }