session: fix ho cleanup on forced reset 14/41114/1
authorFlorin Coras <[email protected]>
Wed, 12 Jun 2024 17:14:40 +0000 (10:14 -0700)
committerFlorin Coras <[email protected]>
Wed, 12 Jun 2024 17:14:40 +0000 (10:14 -0700)
Avoid double free if app forces reset while half-open is cleaning up.

Type: fix

Signed-off-by: Florin Coras <[email protected]>
Change-Id: I2311fb763076aa8a263c193f5967793402eedb6a

src/vnet/session/session.c

index 32c987c..2ca867c 100644 (file)
@@ -1689,7 +1689,8 @@ session_transport_reset (session_t * s)
     {
       if (s->session_state == SESSION_STATE_TRANSPORT_CLOSED)
        session_set_state (s, SESSION_STATE_CLOSED);
-      else if (s->session_state >= SESSION_STATE_TRANSPORT_DELETED)
+      else if (s->session_state >= SESSION_STATE_TRANSPORT_DELETED &&
+              !(s->flags & SESSION_F_HALF_OPEN))
        session_program_cleanup (s);
       return;
     }