From 5fda9546142574c72582abb2c0234d538df5d925 Mon Sep 17 00:00:00 2001 From: Steven Luong Date: Mon, 4 Aug 2025 13:41:00 -0700 Subject: [PATCH] session: session debug crashes with elog track session debug uses elog track in the the transport. However, not all transports initialize elog track. If they don't, session debug crashes. The fix is to use non elog track if elog track is not initialized in the transport. Type: fix Change-Id: I123f71b39a4262cd68e35634dd5c7ec0e7b88cb0 Signed-off-by: Steven Luong --- src/vnet/session/session_debug.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/vnet/session/session_debug.h b/src/vnet/session/session_debug.h index d433ef47fb1..70909979a52 100644 --- a/src/vnet/session/session_debug.h +++ b/src/vnet/session/session_debug.h @@ -149,14 +149,16 @@ extern session_dbg_main_t session_dbg_main; #define SESSION_DBG(_fmt, _args...) clib_warning (_fmt, ##_args) -#define DEC_SESSION_ETD(_s, _e, _size) \ - struct \ - { \ - u32 data[_size]; \ - } * ed; \ - transport_connection_t *_tc = session_get_transport (_s); \ - ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, \ - _e, _tc->elog_track) +#define DEC_SESSION_ETD(_s, _e, _size) \ + struct \ + { \ + u32 data[_size]; \ + } *ed; \ + transport_connection_t *_tc = session_get_transport (_s); \ + if (_tc->elog_track.name == 0) \ + ed = ELOG_DATA (&vlib_global_main.elog_main, _e); \ + else \ + ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, _e, _tc->elog_track) #define DEC_SESSION_ED(_e, _size) \ struct \ -- 2.16.6