session: fix ho cleanup on active and passive close 10/41110/3
authorFlorin Coras <fcoras@cisco.com>
Tue, 11 Jun 2024 19:17:04 +0000 (12:17 -0700)
committerDave Wallace <dwallacelf@gmail.com>
Wed, 12 Jun 2024 14:56:51 +0000 (14:56 +0000)
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I9e7011ff45f14e17fc0d0d63800184f404c29093

src/vnet/session/session.c

index 67e7ee3..32c987c 100644 (file)
@@ -1659,8 +1659,10 @@ session_transport_close (session_t * s)
     {
       if (s->session_state == SESSION_STATE_TRANSPORT_CLOSED)
        session_set_state (s, SESSION_STATE_CLOSED);
-      /* If transport is already deleted, just free the session */
-      else if (s->session_state >= SESSION_STATE_TRANSPORT_DELETED)
+      /* If transport is already deleted, just free the session. Half-opens
+       * expected to be already cleaning up at this point */
+      else if (s->session_state >= SESSION_STATE_TRANSPORT_DELETED &&
+              !(s->flags & SESSION_F_HALF_OPEN))
        session_program_cleanup (s);
       return;
     }