tcp: check for header truncation 64/40664/3
authorBenoît Ganne <bganne@cisco.com>
Tue, 9 Apr 2024 10:03:53 +0000 (12:03 +0200)
committerFlorin Coras <florin.coras@gmail.com>
Thu, 11 Apr 2024 01:06:03 +0000 (01:06 +0000)
Type: fix

Change-Id: I0a43a37971d03a700926d59e848f0b6e6dbeb19a
Signed-off-by: Benoît Ganne <bganne@cisco.com>
src/vnet/tcp/tcp_format.c

index 751042c..4674f2c 100644 (file)
@@ -139,7 +139,9 @@ format_tcp_header (u8 * s, va_list * args)
              clib_net_to_host_u16 (tcp->window),
              clib_net_to_host_u16 (tcp->checksum));
 
-  if (tcp_options_parse (tcp, &opts, tcp_is_syn (tcp)) < 0)
+  if (header_bytes > max_header_bytes)
+    s = format (s, "\n%Uoptions: truncated", format_white_space, indent);
+  else if (tcp_options_parse (tcp, &opts, tcp_is_syn (tcp)) < 0)
     s = format (s, "\n%Uoptions: parsing failed", format_white_space, indent);
   else
     s = format (s, "\n%U%U", format_white_space, indent, format_tcp_options,