]> The Tcpdump Group git mirrors - tcpdump/commitdiff
ISAKMP: Fix printing Delete payload SPI when size is zero
authorFrancois-Xavier Le Bail <[email protected]>
Sun, 10 Dec 2023 19:28:10 +0000 (20:28 +0100)
committerFrancois-Xavier Le Bail <[email protected]>
Sun, 10 Dec 2023 19:31:42 +0000 (20:31 +0100)
Print Security Parameter Index(es) only if the SPI Size is non zero.

print-isakmp.c

index 57a481def61a4db7591a3b546a7be5a9a4576c46..a0066aa9409fac018e0b0eb9d521d871303c77bb 100644 (file)
@@ -1884,14 +1884,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: