session: init lookup before dgram accept notification 01/30101/2
authorFlorin Coras <fcoras@cisco.com>
Mon, 23 Nov 2020 23:59:36 +0000 (15:59 -0800)
committerDamjan Marion <dmarion@me.com>
Tue, 24 Nov 2020 10:22:08 +0000 (10:22 +0000)
Avoids potential session pointer invalidation

Type: fix

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

src/vnet/session/session.c

index 9429ddb..3a468b4 100644 (file)
@@ -1158,16 +1158,18 @@ session_dgram_accept (transport_connection_t * tc, u32 listener_index,
       return rv;
     }
 
+  session_lookup_add_connection (tc, session_handle (s));
+
   app_wrk = app_worker_get (s->app_wrk_index);
   if ((rv = app_worker_accept_notify (app_wrk, s)))
     {
+      session_lookup_del_session (s);
       segment_manager_dealloc_fifos (s->rx_fifo, s->tx_fifo);
       session_free (s);
       return rv;
     }
 
   s->session_state = SESSION_STATE_READY;
-  session_lookup_add_connection (tc, session_handle (s));
 
   return 0;
 }