From aa667cf34139a9eebcbf4e4b0e45a38da857b09a Mon Sep 17 00:00:00 2001
From: Ivan Shvedunov <ivan4th@gmail.com>
Date: Fri, 24 Jul 2020 19:16:28 +0300
Subject: [PATCH 2/2] Fix initializing elog track for accepted TCP connections

When TCP debugging is enabled, the code was crashing because
tcp_send_synack (child) was called before TCP_EVT (TCP_EVT_SYN_RCVD,
child, 1) which initializes the elog track.

Type: fix
---
 src/vnet/tcp/tcp_input.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/vnet/tcp/tcp_input.c b/src/vnet/tcp/tcp_input.c
index bdaa28ec3..a1ce81cb6 100644
--- a/src/vnet/tcp/tcp_input.c
+++ b/src/vnet/tcp/tcp_input.c
@@ -2640,10 +2640,10 @@ tcp46_listen_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
 
       child->tx_fifo_size = transport_tx_fifo_size (&child->connection);
 
-      tcp_send_synack (child);
-
       TCP_EVT (TCP_EVT_SYN_RCVD, child, 1);
 
+      tcp_send_synack (child);
+
     done:
 
       if (PREDICT_FALSE (b->flags & VLIB_BUFFER_IS_TRACED))
-- 
2.24.0

